Installazione di Chocolatey: una guida passo passo

Se stai avendo difficoltà nella gestione e manutenzione del software nel tuo ambiente, sei fortunato. In questo articolo, imparerai come installare Chocolatey e prendere il controllo dei tuoi pacchetti software!

In questo articolo, imparerai, praticamente, come installare Chocolatey, gestire il software e ottenere una breve introduzione su cosa rende questo prodotto unico.

Correlato: Come Creare il Tuo Primo Pacchetto Chocolatey

Prerequisiti

Questo tutorial sarà una guida passo-passo. Se hai intenzione di seguirla, assicurati di avere soddisfatto i seguenti prerequisiti.

  • Windows 10: Il tutorial utilizzerà Windows 10 1903.
  • Windows PowerShell 5.1 (opzionale): Anche se non è strettamente richiesto da Chocolatey, è ciò che verrà utilizzato per tutti gli esempi in questo articolo.

Per una panoramica completa di tutti i requisiti tecnici, consulta la pagina dei Requisiti di Chocolatey.

Installazione di Chocolatey

Quando inizi con Chocolatey, il tuo primo compito sarà scaricare e installare il client Chocolatey. Tecnicamente, Chocolatey ha anche un componente server, ma in questo articolo ci concentreremo sull’utilizzo del client per scaricare, installare e aggiornare il software.

Puoi installare Chocolatey in molti modi diversi. In questo articolo, imparerai il modo più comune, utilizzando PowerShell.

Per una dettagliata guida all’installazione del client Chocolatey in molti modi diversi, consulta la guida all’installazione di Chocolatey.

Per installare Chocolatey, l’azienda fornisce uno script PowerShell utile da eseguire sul tuo sistema. Prima di eseguire lo script di installazione, dovresti prima ispezionarlo prima di scaricarlo. Puoi trovare lo script qui.

Correlato: Come eseguire PowerShell come amministratore

Con la console PowerShell aperta come amministratore, scarica ed esegui lo script tutto in un solo comando.

Il frammento di codice seguente:

  • Assicura che PowerShell possa navigare nel certificato SSL sul server chocolatey.org
  • Scarica lo script da https://chocolatey.org/install.ps1
  • Esegue lo script una volta scaricato
  • Aggiunge la cartella %ALLUSERSPROFILE%\chocolatey\bin alla variabile d’ambiente PATH
[System.Net.ServicePointManager]::SecurityProtocol = 3072
Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
Downloading and install Chocolatey

Potresti incontrare un errore che menziona una policy di esecuzione. In tal caso, la tua policy di esecuzione attuale potrebbe non consentire l’esecuzione degli script. Per rimediare a ciò, assicurati di rilassare la tua policy di esecuzione impostandola su Unrestricted o RemoteSigned.

Verifica dell’installazione

Una volta che lo script di PowerShell è terminato e ti sei riportato alla console di PowerShell, verifica di poter eseguire il client Chocolatey chiamato choco.exe.

Quando esegui choco, dovresti vedere la versione installata e alcune informazioni di base come mostrato di seguito.

PS51> choco
Chocolatey v0.10.15
Please run 'choco -?' or 'choco <command> -?' for help menu.~~

Ottieni aiuto

Una delle migliori caratteristiche del client CLI Chocolatey è il suo sistema di aiuto. Il sistema di aiuto integrato documenta in modo eccellente tutte le funzionalità di Chocolatey.

Per accedere al sistema di aiuto, fornisci l’opzione -? al comando choco come mostrato di seguito.

Puoi vedere che il client Chocolatey ha vari comandi con cui puoi eseguire molte diverse funzioni per gestire il software.

PS51> choco -?
This is a listing of all of the different things you can pass to choco.
 
Commands
 
 * list - lists remote or local packages
 * find - searches remote or local packages (alias for search)
 * search - searches remote or local packages (alias for list)
 * info - retrieves package information. Shorthand for choco search pkgname --exact --verbose
 * install - installs packages from various sources
 * pin - suppress upgrades for a package
 * outdated - retrieves packages that are outdated. Similar to upgrade all --noop
 * upgrade - upgrades packages from various sources
 * uninstall - uninstalls a package
 * pack - packages up a nuspec to a compiled nupkg
 * push - pushes a compiled nupkg
 * new - generates files necessary for a chocolatey package from a template
 * sources - view and configure default sources (alias for source)
 * source - view and configure default sources
 * config - Retrieve and configure config file settings
 * feature - view and configure choco features
 * features - view and configure choco features (alias for feature)
 * setapikey - retrieves, saves or deletes an apikey for a particular source (alias for apikey)
 * apikey - retrieves, saves or deletes an apikey for a particular source
 * unpackself - have chocolatey set itself up
 * version - [DEPRECATED] will be removed in v1 - use `choco outdated` or `cup <pkg|all> -whatif` instead
 * update - [DEPRECATED] RESERVED for future use (you are looking for upgrade, these are not the droids you are looking for)
 
 
Please run chocolatey with `choco command -help` for specific help on
 each command.

Se ti trovi bloccato nel tentativo di capire come eseguire una determinata azione, consulta il sistema di aiuto!

Trovare pacchetti

Una volta installato e in esecuzione il client Chocolatey, è il momento di vedere quale tipo di pacchetti è possibile installare. Il client dispone di tre comandi che ti consentono di fare proprio questo, chiamati list, search e find. Questi comandi cercano un repository di Chocolatey per trovare pacchetti disponibili o per elencare pacchetti sulla tua macchina.

Di seguito troverai la descrizione e gli esempi presenti nel sistema di aiuto.

PS51> choco list --help

List/Search Command
 
Chocolatey will perform a search for a package local or remote.
 
* choco list - lists remote or local packages
* choco search - searches remote or local packages (alias for list)
* choco find - searches remote or local packages (alias for search)
 
Usage:
 
choco search <filter> [<options/switches>]
choco list <filter> [<options/switches>]
clist <filter> [<options/switches>]
 
Popular Switch --localonly or -lo
Usage of -lo:
 
choco <search,list,find> --localonly

Come esempio, di seguito trovi un esempio di enumerazione di tutti i pacchetti (list) installati su un computer locale (-lo).

PS51> choco list -lo
Chocolatey v0.10.15
chocolatey 0.10.15
chocolatey-core.extension 1.3.3
GoogleChrome 77.0.3865.90
3 packages installed.

Ispezione dei pacchetti Chocolatey prima del download

Prima di scaricare un pacchetto, è sempre buona norma capire cosa fa quel pacchetto. Fortunatamente, hai il comando info. Questo comando trova i dettagli dei pacchetti presenti in un repository Chocolatey.

Con choco info, puoi trovare attributi del pacchetto come autore, numero di download, checksum, origine e altro ancora.

Dai un’occhiata alle opzioni per eseguire choco info di seguito.

PS51> choco info --help

Info Command
 
Chocolatey will perform a search for a package local or remote and provide
detailed information about that package. This is a synonym for
`choco search <pkgname> --exact --detailed`.
 
* choco info pkgname - retrieves package information.
* Shorthand for choco search pkgname --exact --verbose
* Shorthand for choco search pkgname --exact --detailed
 
 
Usage:
 
choco info [<options/switches>]

Ad esempio, supponiamo che tu debba installare Google Chrome e hai notato un pacchetto disponibile chiamato googlechrome. Esegui choco info googlechrome e nota che tipo di informazioni puoi trovare.

PS51> choco info googlechrome
Chocolatey v0.10.15
GoogleChrome 77.0.3865.90 [Approved] Downloads cached for licensed users
Title: Google Chrome | Published: 9/18/2019
Package approved as a trusted package on Sep 18 2019 20:15:10.
Package testing status: Passing on Sep 18 2019 18:45:17.
Number of Downloads: 19851699 | Downloads for this version: 262131
Package url
Chocolatey Package Source: <https://github.com/chocolatey-community/chocolatey-coreteampackages/tree/master/automatic/googlechrome>
Package Checksum: 'v7bDDUTo21k31xqUW+1amzaEWjeOqsEgS3txYNRgRaO3Q7ZnkzYz4S69AxTFn4r0HUB5Wi7NHXZBag/OaJTPKA==' (SHA512)
Tags: google chrome web internet browser admin
Software Site: <https://www.google.com/chrome/browser/>
Software License: <https://www.google.it/intl/en/chrome/browser/privacy/eula_text.html>
Description: Chrome is a fast, simple, and secure web browser, built for the modern web.

Installazione dei pacchetti

Basta con l’ottenere informazioni sui pacchetti. È ora di installare effettivamente alcuni software! Per farlo, utilizza choco install.

Il comando choco install è potente ed essenziale. Se c’è un comando che dovresti ricordare e diventare un esperto, è questo.

Il comando choco install installa un pacchetto o un elenco di pacchetti che fornisci una volta che sai di cosa hai bisogno.

Esegui choco install --help per vedere quali sono le tue opzioni.

PS51> choco install --help
 Install Command
 Installs a package or a list of packages
 Usage:
 choco install  [ ] []
     cinst  [ ] []
 Examples:
 choco install sysinternals
 choco install notepadplusplus googlechrome atom 7zip
 choco install notepadplusplus --force --force-dependencies
 choco install notepadplusplus googlechrome atom 7zip -dvfy
 choco install git -y --params="'/GitAndUnixToolsOnPath /NoAutoCrlf'"
 choco install git -y --params="'/GitAndUnixToolsOnPath /NoAutoCrlf'" --install-arguments="'/DIR=C:\git'"
     # I parametri sono parametri del pacchetto, passati al pacchetto
     # Gli argomenti di installazione sono argomenti dell'installatore, aggiunti a silentArgs
     #  nel pacchetto per l'installatore stesso
 choco install nodejs.install --version 0.10.35
 choco install git -s "'https://somewhere/out/there'"
 choco install git -s "'https://somewhere/protected'" -u user -p pass

Mantenere i pacchetti Chocolatey aggiornati

Una volta installato un pacchetto, senza dubbio vorrai tenerlo aggiornato. Questa è una potente funzionalità di Chocolatey.

Una volta installati alcuni pacchetti, scoprirai rapidamente che Chocolatey non aggiorna automaticamente i pacchetti in background. Il client di Chocolatey non viene eseguito come servizio.

Per aggiornare i pacchetti di Chocolatey installati, devi invocare manualmente il comando choco ogni volta che hai bisogno di un aggiornamento. Per farlo, esegui il comando choco upgrade insieme al pacchetto che desideri aggiornare.

Il comando upgrade installerà il pacchetto se non esiste nel sistema.

Di seguito troverai una descrizione dettagliata e degli esempi tratti dal sistema di assistenza.

PS51> choco upgrade --help
 Upgrade Command
 Upgrades a package or a list of packages. Some may prefer to use cup
  as a shortcut for choco upgrade. If you do not have a package
 installed, upgrade will install it.
 Usage:
 choco upgrade  [ ] []
 cup  [ ] []
 Examples:
 choco upgrade chocolatey
 choco upgrade notepadplusplus googlechrome atom 7zip
 choco upgrade notepadplusplus googlechrome atom 7zip -dvfy
 choco upgrade git -y --params="'/GitAndUnixToolsOnPath /NoAutoCrlf'"
 choco upgrade git -y --params="'/GitAndUnixToolsOnPath /NoAutoCrlf'" --install-args="'/DIR=C:\git'"
 Params are package parameters, passed to the package
 Install args are installer arguments, appended to the silentArgs
 in the package for the installer itself
 choco upgrade nodejs.install --version 0.10.35
 choco upgrade git -s "'https://somewhere/out/there'"
 choco upgrade git -s "'https://somewhere/protected'" -u user -p pass
 choco upgrade all
 choco upgrade all --except="'skype,conemu'"

Puoi aggiornare tutti i pacchetti all’ultima versione eseguendo il comando choco upgrade all.

Ricerca dei pacchetti locali obsoleti

Cosa fai se vuoi verificare se esiste una nuova versione del tuo pacchetto prima di eseguire ciecamente il comando choco upgrade? Puoi utilizzare il comando outdated. Il comando outdated controlla i pacchetti installati e incrocia i dati con il tuo repository di pacchetti designato per potenziali aggiornamenti dei pacchetti.

Dai un’occhiata a cosa è possibile fare con choco outdated --help di seguito.

PS51> choco outdated --help

Outdated Command
 
Returns a list of outdated packages.
 
* outdated - retrieves packages that are outdated. Similar to upgrade all --noop
 
Usage:
 
choco outdated [<options/switches>]
 
Examples:
 
choco outdated
choco outdated -s <https://somewhere/out/there>
choco outdated -s "'<https://somewhere/protected>'" -u user -p pass

Ad esempio, se vuoi trovare tutti i pacchetti installati localmente che sono obsoleti, puoi farlo utilizzando choco outdated.

PS51> choco outdated
Chocolatey v0.10.15
Outdated Packages
Output is package name | current version | available version | pinned?
 
 
Chocolatey has determined 0 package(s) are outdated.

Suppressione degli aggiornamenti dei pacchetti

Mantenere il software aggiornato è sicuramente consigliato, ma cosa succede se hai pacchetti in cui devi esplicitamente impedirlo? Perché vorresti farlo?

Un motivo per evitare gli aggiornamenti potrebbe essere quello di evitare la ridondanza degli aggiornamenti. Ad esempio, forse stavi cercando di automatizzare l’installazione iniziale di un pacchetto. Non vuoi gestire l’intero ciclo di vita del software del pacchetto.

Forse devi fare delle eccezioni quando forzi Chocolatey ad aggiornare tutti i pacchetti. In tal caso, puoi bloccare i pacchetti.

Quando esegui vari comandi di Chocolatey, vedrai un attributo bloccato. Ad esempio, quando esegui il comando outdated, puoi chiaramente vedere quell’attributo come mostrato di seguito.

PS51> choco outdated
Chocolatey v0.10.15
Outdated Packages
Output is package name | current version | available version | pinned?

Troverai di seguito lo scomposto e gli esempi trovati nel sistema di aiuto

PS51> choco pin --help

Pin Command
 
Pin a package to suppress upgrades.
 
This is especially helpful when running `choco upgrade` for all
 packages, as it will automatically skip those packages. Another
 alternative is `choco upgrade --except="pkg1,pk2"`.
 
Usage
 
	choco pin [list]|add|remove [<options/switches>]
 
Examples
 
	choco pin
	choco pin list
	choco pin add -n=git
	choco pin add -n=git --version 1.2.3
	choco pin remove --name git
* pin - suppress upgrades for a package

Disinstallazione dei pacchetti di Chocolatey

Infine, forse hai deciso di non avere più bisogno di un software installato. Invece di andare manualmente nel pannello di controllo, trovare il software e rimuoverlo in quel modo, utilizza il comando choco uninstall per farlo rapidamente.

Il comando choco uninstall rimuove uno o più pacchetti software in un solo colpo.

Nota come utilizzare il comando choco uninstall tramite il contenuto di aiuto di seguito.

PS51> choco uninstall --help

Uninstall Command
 
Uninstalls a package or a list of packages.
 
Usage:
 
choco uninstall <pkg | all> [pkg2 pkgN] [options/switches]
cuninst <pkg | all> [pkg2 pkgN] [options/switches]
 
NOTE: `all` is a special package keyword that will allow you to
uninstall all packages.
 
Examples:
 
choco uninstall git
choco uninstall notepadplusplus googlechrome atom 7zip
choco uninstall notepadplusplus googlechrome atom 7zip -dv
choco uninstall ruby --version 1.8.7.37402
choco uninstall nodejs.install --all-versions

Giocare in sicurezza prima di apportare modifiche (choco whatif)

Automatizzare la gestione del software può essere un compito distruttivo se non eseguito correttamente. Piuttosto che apportare molti cambiamenti tutti insieme, sarebbe più intelligente eseguire prima un test per vedere cosa sarebbe successo. Fortunatamente, il client Chocolatey ha alcuni parametri per fare proprio questo.

Lo switch WhatIf

Ogni comando choco ha uno switch chiamato --whatif con alias --noop e --what-if. Se questi switch vengono utilizzati con un comando choco, Chocolatey non eseguirà effettivamente l’azione, ma ti informerà di cosa sarebbe successo.

Puoi vedere un esempio qui sotto che tenta di disinstallare tutti i pacchetti nel sistema locale, ma utilizza lo switch whatif per evitare di fare effettivamente qualcosa.

PS51> choco uninstall all -whatif

Chocolatey v0.10.15
_ Chocolatey:ChocolateyUninstallCommand - Noop Mode _
Would have uninstalled chocolatey v0.10.15.
Would have uninstalled GoogleChrome v77.0.3865.90.
Would have uninstalled chocolatey-core.extension v1.3.3.

Conferma delle azioni

Quando esegui choco install per installare un pacchetto, di solito ti viene chiesto di confermare se desideri continuare il processo di installazione. Choco richiede anche la conferma per i pacchetti aggiuntivi che vengono chiamati come dipendenza per il pacchetto iniziale.

Puoi vedere qui sotto un esempio di come Chocolatey prima richiede di installare Firefox prima di effettuare effettivamente l’azione.

PS51> choco install firefox
Chocolatey v0.10.15
Installing the following packages:
firefox
By installing you accept licenses for the packages.
Progress: Downloading Firefox 69.0.1... 100%
 
Firefox v69.0.1 [Approved]
firefox package files install completed. Performing other installation steps.
The package Firefox wants to run 'chocolateyInstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider:
choco feature enable -n allowGlobalConfirmation
Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint):

Il processo di conferma è una misura di sicurezza, ma può rallentarti. Se vuoi che il processo continui senza interruzioni, aggiungi uno switch di -y, --yes o --confirm alla fine del tuo comando.

L’utilizzo dello switch -y funziona bene quando si eseguono comandi non assistiti, ad esempio in un’attività pianificata.

Passaggi successivi

Ora che sai come installare Chocolatey e usarlo a un livello avanzato, dove vai da qui? Ora cerca un software comune che devi solitamente installare e aggiornare più volte.

Prova a creare uno script per gestire quel software con Chocolatey per iniziare a prendere confidenza e a imparare di più su questo pratico gestore di pacchetti per Windows!

Source:
https://adamtheautomator.com/install-chocolatey/