Domine o Windows com Chocolatey: Instalação, Uso e Comparativo com Winget

O sistema operacional Windows é conhecido pela sua usabilidade intuitiva. No entanto, a sua adaptabilidade é notável, especialmente quando se utiliza softwares de código aberto como o Chocolatey (frequentemente referido como Choco).

Chocolatey: Uma Introdução

Chocolatey é um gerenciador de pacotes de código aberto para Windows, semelhante ao DNF ou APT do Linux. Este tipo de ferramenta é especialmente útil para desenvolvedores e usuários avançados, que precisam instalar, atualizar ou remover softwares de forma eficaz.

Vamos explorar o Chocolatey mais a fundo, mas antes, vamos entender o conceito de gerenciadores de pacotes.

O Que é um Gerenciador de Pacotes?

Um gerenciador de pacotes em um sistema operacional permite um controle preciso sobre os softwares instalados. Ele possibilita rastrear, atualizar e instalar novos pacotes, bem como remover aqueles que não são mais necessários.

Simplificando, um gerenciador de pacotes administra softwares (pacotes). No contexto computacional, um pacote é um conjunto de arquivos que são instalados, atualizados ou removidos.

Gerenciadores de pacotes garantem que não ocorram conflitos ou remoções inadvertidas de componentes essenciais do sistema. Pacotes frequentemente dependem de outros para funcionar, e um gerenciador assegura que tudo permaneça operacional.

Considere dois pacotes, A e B, onde A depende de B. Isso significa que, para A funcionar, B deve estar instalado e operacional. Por exemplo, para o GIMP (um software de edição de imagens), o sistema necessita acessar o pacote de dados do GIMP.

Existem vários gerenciadores de pacotes populares. No Linux, por exemplo, DNF e APT são amplamente utilizados.

Leia também: Guia rápido para o gerenciador de pacotes DNF

O Windows também possui seu próprio gerenciador de pacotes, conhecido como Gerenciador de Pacotes do Windows (Winget). Ele opera via linha de comando e possibilita que desenvolvedores encontrem, atualizem, removam e instalem softwares. Para saber mais, acesse o Winget, o Gerenciador de Pacotes do Windows.

Além disso, temos o Chocolatey, um gerenciador de pacotes gratuito e de código aberto. Vamos explorá-lo mais detalhadamente abaixo.

O Que é o Gerenciador de Pacotes Chocolatey?

O Chocolatey é um gerenciador de pacotes para Windows que opera via linha de comando. Sua utilização é gratuita por ser de código aberto (licenciado pela Apache 2.0). Com o Chocolatey, é possível automatizar a gestão de softwares, com opções pagas para empresas. Ele é baseado no NuGet, um gerenciador de pacotes voltado para desenvolvedores.

Semelhante a outros gerenciadores de pacotes, o Chocolatey permite que desenvolvedores e equipes de TI gerenciem softwares de forma eficaz em múltiplos computadores. Ele utiliza pacotes para garantir o funcionamento adequado dos softwares, seja na atualização, remoção ou instalação, e automatiza todo o processo para garantir maior rapidez.

Propósitos e Aplicações do Chocolatey

Desenvolvedores e gestores de TI utilizam o Chocolatey principalmente em ambientes onde precisam gerenciar softwares em múltiplas máquinas. Ele se encaixa no conceito de DevOps, pois automatiza tarefas repetitivas como a implantação de binários, scripts, instaladores, aplicações e pacotes de software.

O Chocolatey é vantajoso pois elimina a necessidade de etapas manuais na instalação de softwares, como a pesquisa, download e instalação dos pacotes. Com o Chocolatey, um simples comando realiza tudo, incluindo a instalação das dependências do software.

Isso é especialmente útil para equipes que trabalham com ambientes Windows complexos. Ele também acelera o desenvolvimento de softwares ao automatizar tarefas manuais. O Chocolatey oferece excelentes opções de integração, incluindo suporte para ferramentas de automação de infraestrutura.

Como Instalar o Chocolatey no Windows

A instalação do Chocolatey é simples. Basta seguir os passos indicados abaixo:

Passo 1: Verificar os Requisitos

Para instalar o Chocolatey, é necessário garantir que seu sistema atenda aos requisitos, que incluem:

  • Sistema operacional Windows (cliente ou servidor).
  • .NET Framework 4.8 ou superior.
  • PowerShell v2 ou superior.

Passo 2: Executar o PowerShell e Definir Get-ExecutionPolicy

Abra o PowerShell em sua máquina Windows, executando-o como administrador.

É necessário assegurar que a Get-ExecutionPolicy esteja configurada como irrestrita. Caso contrário, a instalação do Chocolatey será impedida. Você pode contornar essa verificação utilizando a opção Bypass. No entanto, se a sua organização prioriza a segurança na execução de scripts da internet, é recomendado utilizar a opção AllSigned para maior proteção.

Execute um dos seguintes comandos para definir a Get-ExecutionPolicy de acordo com suas necessidades:

$ Set-ExecutionPolicy AllSigned

Ou

$ Set-ExecutionPolicy Bypass -Scope Process

Passo 3: Executar o Comando de Instalação do Chocolatey

Após configurar a ExecutionPolicy, utilize o seguinte comando no shell para iniciar a instalação do Chocolatey:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Passo 4: Confirmar a Instalação

Se o comando acima for executado sem erros, o Chocolatey provavelmente está instalado corretamente.

Para confirmar, utilize o seguinte comando:

$ choco

Ou

$ choco -?

Pronto! O Chocolatey foi instalado com sucesso. A instalação também pode ser realizada via CMD, copiando e colando o seguinte comando em um shell administrativo:

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " [System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

A saída do comando acima será semelhante a:

Getting latest version of the Chocolatey package for download.
Not using proxy.

Getting Chocolatey from https://community.chocolatey.org/api/v2/package/chocolatey/2.2.2.

Downloading https://community.chocolatey.org/api/v2/package/chocolatey/2.2.2 to C:\Users\nitis\AppData\Local\Temp\chocolatey\chocoInstall\chocolatey.zip

Not using proxy.

Extracting C:\Users\nitis\AppData\Local\Temp\chocolatey\chocoInstall\chocolatey.zip to C:\Users\nitis\AppData\Local\Temp\chocolatey\chocoInstall

Installing Chocolatey on the local machine

Creating ChocolateyInstall as an environment variable (targeting 'Machine')

Setting ChocolateyInstall to 'C:\ProgramData\chocolatey'

WARNING: It's very likely you will need to close and reopen your shell

before you can use choco.

Restricting write permissions to Administrators

We are setting up the Chocolatey package repository.

The packages themselves go to 'C:\ProgramData\chocolatey\lib'

(i.e. C:\ProgramData\chocolatey\lib\yourPackageName).

A shim file for the command line goes to 'C:\ProgramData\chocolatey\bin'

and points to an executable in 'C:\ProgramData\chocolatey\lib\yourPackageName'.

Creating Chocolatey folders if they do not already exist.

chocolatey.nupkg file not installed in lib.

Attempting to locate it from bootstrapper.

PATH environment variable does not have C:\ProgramData\chocolatey\bin in it. Adding...

WARNING: Not setting tab completion: Profile file does not exist at

'C:\Users\nitis\OneDrive\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'.

Chocolatey (choco.exe) is now ready.

You can call choco from anywhere, command line or powershell by typing choco.

Run choco /? for a list of functions.

You may need to shut down and restart powershell and/or consoles

first prior to using choco.

Ensuring Chocolatey commands are on the path

Ensuring chocolatey.nupkg is in the lib folder

Utilizando o Chocolatey

O Chocolatey é simples de usar. Sendo uma solução via linha de comando, é necessário utilizar comandos.

Por exemplo, para instalar o notepadplusplus, utilize o seguinte comando:

$ choco install notepadplusplus

Da mesma forma, outros softwares como o GitHub podem ser instalados.

Caso não tenha certeza sobre a disponibilidade de um pacote, utilize a opção de busca:

$ choco search git

É possível instalar múltiplos aplicativos com um único comando:

$ choco install git gimp notepadplusplus

Para desinstalar um aplicativo, utilize a opção de desinstalação:

$ choco uninstall gimp

Se houver muitos aplicativos, crie um arquivo XML e o utilize no comando:

$ choco install packages.config -y

O arquivo packages.config deve conter a lista de pacotes a serem instalados.

Atualize todos os pacotes existentes utilizando o seguinte comando:

$ choco upgrade all

Outros comandos úteis do Chocolatey incluem:

  • $ choco list → listar pacotes locais ou remotos
  • $ choco info [package_name] → obter informações do pacote
  • $ choco upgrade [package_name] → atualizar o pacote
  • $ choco outdated → listar pacotes desatualizados

Desinstalando o Chocolatey

Para desinstalar o Chocolatey, exclua a pasta C:\ProgramData\chocolatey ou a pasta onde realizou a instalação.

Execute o comando abaixo caso não tenha certeza da pasta de instalação:

$ env:ChocolateyInstall

Antes de desinstalar, faça um backup das subpastas bin e lib, pois elas contêm os pacotes instalados. Também é necessário remover ou ajustar as seguintes variáveis de ambiente:

  • ChocolateyInstall
  • ChocolateyToolsLocation
  • ChocolateyLastPathUpdate
  • PATH

Chocolatey vs. Gerenciador de Pacotes do Windows Winget

O Chocolatey não é o único gerenciador de pacotes disponível. Há também o Winget ou o OneGet (uma interface do gerenciador de pacotes do PowerShell 5.0). Qual escolher? Vamos comparar o Chocolatey e o Winget abaixo.

#1. Características

Em termos de características, o Chocolatey oferece mais opções. A versão de código aberto permite a gestão de pacotes em ambientes Windows. Para uma experiência mais otimizada, a versão Pro Edition oferece recursos adicionais como confiabilidade aprimorada e proteção contra malware.
A versão Enterprise for Business do Chocolatey permite que empresas melhorem o fluxo de trabalho do DevOps e automatizem o ciclo de vida do software Windows.

O Winget, por outro lado, é uma solução de gerenciamento de pacotes mais simples, utilizando manifestos YAML para criar, carregar e remover pacotes.

#2. Custo

Ambos oferecem versões gratuitas e de código aberto para usuários. No entanto, apenas o Chocolatey oferece opções pagas para quem precisa de recursos adicionais.

#3. Facilidade de Uso

A facilidade de uso é subjetiva, já que ambos são ferramentas de linha de comando. No entanto, a instalação do Winget é mais simples, pois está disponível na Microsoft Store. O Chocolatey requer a execução de comandos para instalação, bem como a configuração de políticas de execução.

#4. Repositório

O Chocolatey possui um repositório de mais de 9.500 pacotes gerenciados. Por outro lado, o Winget depende de outras fontes para baixar e distribuir pacotes.

Em termos de comunidade, o Chocolatey se destaca devido à sua longevidade. Com mais de uma década, possui uma comunidade forte que o apoia. O Winget ainda não possui essa mesma base.

Considerações Finais

O Chocolatey é um gerenciador de pacotes útil, popular, bem documentado e rico em recursos. Sendo de código aberto, seu uso é gratuito para todos.

O Chocolatey oferece opções pagas para equipes corporativas, com recursos adicionais que otimizam projetos complexos em Windows.

A seguir, confira como instalar o Node Version Manager (NVM) no Windows e no MacOS.