Instalação do Chocolatey: Um Guia Passo a Passo

Se você está com dificuldades para gerenciar e manter o software em seu ambiente, está prestes a ter uma surpresa agradável. Neste artigo, você aprenderá como instalar o Chocolatey e ter controle sobre seus pacotes de software!

Neste artigo, você aprenderá, na prática, como instalar o Chocolatey, gerenciar o software e ter uma introdução básica sobre o que torna este produto especial.

Relacionado: Como Criar Seu Primeiro Pacote Chocolatey

Pré-requisitos

Este tutorial será um passo a passo. Se você planeja seguir junto, certifique-se de que possui os seguintes pré-requisitos atendidos.

  • Windows 10 – O tutorial utilizará o Windows 10 1903.
  • Windows PowerShell 5.1 (opcional) – Embora isso não seja tecnicamente necessário para o Chocolatey, é o que todos os exemplos deste artigo usarão.

Para uma análise completa de todos os requisitos técnicos, consulte a página de Requisitos do Chocolatey.

Instalando o Chocolatey

Quando começar a usar o Chocolatey, sua primeira tarefa será baixar e instalar o cliente Chocolatey. Tecnicamente, o Chocolatey também possui um componente de servidor, mas neste artigo você se concentrará em usar o cliente para baixar, instalar e atualizar o software.

Você pode instalar o Chocolatey de várias maneiras diferentes. Neste artigo, você aprenderá a maneira mais comum, usando o PowerShell.

Para obter uma descrição detalhada da instalação do cliente Chocolatey de várias maneiras diferentes, consulte o guia de instalação do Chocolatey.

Para instalar o Chocolatey, a empresa fornece um prático script PowerShell para executar em seu sistema. Antes de executar o script de instalação, você deve primeiro inspecioná-lo antes de fazer o download. Você pode encontrar o script aqui.

Relacionado: Como Executar o PowerShell como Administrador

Com o console do PowerShell aberto como administrador, faça o download e execute o script em um único comando.

O trecho de código abaixo:

  • Garante que o PowerShell possa navegar no certificado SSL no servidor chocolatey.org
  • Faz o download do script em https://chocolatey.org/install.ps1
  • Executa o script após o download
  • Adiciona a pasta %ALLUSERSPROFILE%\chocolatey\bin à variável de 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

Você pode encontrar um erro mencionando uma política de execução. Se isso acontecer, sua política de execução atual pode não permitir a execução de scripts. Para resolver isso, certifique-se de relaxar sua política de execução, alterando-a para Unrestricted ou RemoteSigned.

Verificação da instalação

Assim que o script do PowerShell terminar e você retornar ao console do PowerShell, confirme se você pode executar o cliente Chocolatey chamado choco.exe.

Quando você executar choco, você deve ver a versão instalada e algumas informações básicas de ajuda, como mostrado abaixo.

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

Obtendo Ajuda

Uma das melhores coisas sobre o cliente Chocolatey CLI é o seu sistema de ajuda. O sistema de ajuda integrado faz um excelente trabalho de documentação de toda a funcionalidade do Chocolatey.

Para acessar o sistema de ajuda, forneça o parâmetro -? para o comando choco, como mostrado abaixo.

Você pode ver que o cliente Chocolatey possui vários comandos nos quais você pode executar várias funções para gerenciar 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 você tiver dificuldades para descobrir como realizar uma ação específica, consulte o sistema de ajuda!

Encontrando Pacotes

Assim que você tiver o cliente Chocolatey instalado e em execução, é hora de ver que tipos de pacotes estão disponíveis para instalação. O cliente possui três comandos que permitem fazer exatamente isso, chamados list, search e find. Esses comandos pesquisam um repositório Chocolatey em busca de pacotes disponíveis ou listam pacotes em sua máquina.

Abaixo você encontrará a explicação e exemplos encontrados no sistema de ajuda.

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

Como exemplo, abaixo está um exemplo de enumeração de todos os pacotes (list) instalados em um computador local (-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.

Inspecionando Pacotes do Chocolatey Antes de Baixar

Antes de baixar um pacote, você deve sempre entender o que esse pacote realmente faz. Felizmente, você tem o comando info. Este comando encontra detalhes dos pacotes localizados em um repositório do Chocolatey.

Com choco info, você pode encontrar atributos do pacote, como autor do pacote, contagem de downloads, checksum, origem e muito mais.

Veja suas opções de executar choco info abaixo.

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>]

Por exemplo, digamos que você precise instalar o Google Chrome e tenha notado um pacote disponível chamado googlechrome. Execute choco info googlechrome e observe que tipo de informação você pode encontrar.

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.

Instalando Pacotes

Chega de obter informações sobre pacotes. É hora de realmente instalar algum software! Para fazer isso, use choco install.

O comando choco install é poderoso e essencial. Se há um comando que você deve lembrar e se tornar um especialista, é este.

O comando choco install instala um pacote ou uma lista de pacotes que você fornece assim que souber do que precisa.

Execute choco install --help para ver quais são suas opções.

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'"
     # Os parâmetros são parâmetros do pacote, passados para o pacote
     # Os argumentos de instalação são argumentos do instalador, anexados aos silentArgs
     #  no pacote para o próprio instalador
 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

Atualizando Pacotes do Chocolatey

Uma vez que um pacote é instalado, você certamente vai querer mantê-lo atualizado. Isso é uma funcionalidade poderosa do Chocolatey.

Depois de ter alguns pacotes instalados, você rapidamente vai perceber que o Chocolatey não atualiza automaticamente os pacotes em segundo plano. O cliente do Chocolatey não é executado como um serviço.

Para atualizar os pacotes do Chocolatey instalados, você precisa invocar o comando choco manualmente sempre que precisar fazer um upgrade. Para isso, execute o comando choco upgrade juntamente com o pacote que você quer atualizar.

O comando upgrade vai instalar o pacote se ele não existir no sistema.

Abaixo você encontrará a explicação e exemplos encontrados no sistema de ajuda.

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'"

Você pode atualizar todos os pacotes para a versão mais recente executando choco upgrade all.

Encontrando pacotes locais desatualizados

E se você quiser verificar se há uma nova versão do seu pacote antes de executar cegamente o comando choco upgrade? Você pode usar o comando outdated. O comando outdated verifica os seus pacotes instalados e cruza as informações com o repositório de pacotes designado em busca de possíveis atualizações.

Dê uma olhada no que é possível fazer com choco outdated --help abaixo.

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

Por exemplo, se você quiser encontrar todos os pacotes instalados localmente que estão desatualizados, você pode fazer isso usando o comando 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.

Suprimindo as Atualizações de Pacotes

Manter o software atualizado é definitivamente recomendado, mas e se você tiver pacotes em que precisa explicitamente impedir isso? Por que você gostaria de fazer isso?

Uma razão para suprimir atualizações seria evitar redundância de atualização. Por exemplo, talvez você esteja apenas procurando automatizar a instalação inicial de um pacote. Você não deseja manter o ciclo de vida completo do software do pacote.

Talvez você precise fazer algumas exclusões ao forçar o Chocolatey a atualizar todos os pacotes. Nesse caso, você pode fixar pacotes.

Ao executar vários comandos do Chocolatey, você verá um atributo fixado. Por exemplo, ao executar o comando desatualizado, você pode ver claramente esse atributo como mostrado abaixo.

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

Abaixo, você encontrará a análise e exemplos encontrados no sistema de ajuda

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

Desinstalando Pacotes do Chocolatey

Finalmente, talvez você tenha decidido que não precisa mais do software instalado. Em vez de entrar manualmente no Painel de Controle, encontrar o software e removê-lo dessa maneira, use o comando choco uninstall para fazer isso rapidamente.

O comando choco uninstall remove um ou muitos pacotes de software de uma só vez.

Observe como usar o comando choco uninstall por meio do conteúdo da ajuda abaixo.

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

Jogando com Segurança Antes de Fazer Mudanças (choco whatif)

Automatizar a gestão de software pode ser uma tarefa destrutiva se não for realizada corretamente. Em vez de fazer muitas alterações de uma só vez, seria mais inteligente executar primeiro um teste para ver o que teria acontecido. Felizmente, o cliente Chocolatey possui alguns parâmetros para fazer exatamente isso.

O Switch WhatIf

Todo comando choco possui um switch chamado --whatif com os aliases --noop e --what-if. Se esses switches forem usados com um comando choco, o Chocolatey não executará efetivamente a ação, mas informará o que teria acontecido.

Você pode ver um exemplo abaixo tentando desinstalar todos os pacotes no sistema local, mas usando o switch whatif para evitar realmente fazer qualquer coisa.

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.

Confirmação de Ações

Quando você executa choco install para instalar um pacote, normalmente é solicitado que você confirme se deseja continuar o processo de instalação. O Choco também requer confirmação para pacotes adicionais que são chamados como dependência do seu pacote inicial.

Você pode ver abaixo um exemplo de como o Chocolatey primeiro solicita a instalação do Firefox antes de efetivamente executar a ação.

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):

O processo de confirmação é uma medida de segurança, mas pode retardar você. Se você deseja que o processo continue sem interrupções, adicione um switch de -y, --yes ou --confirm no final do seu comando.

O uso do switch -y funciona bem ao executar comandos sem intervenção, como em uma tarefa agendada.

Próximos Passos

Agora que você sabe como instalar o Chocolatey e usá-lo em um nível mais avançado, para onde você vai a partir daqui? Agora tente encontrar um software comum que você geralmente precisa instalar e atualizar repetidamente.

Tente criar um script para gerenciar esse software com o Chocolatey para se familiarizar e começar a aprender mais sobre este prático gerenciador de pacotes do Windows!

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