Chocolatey: Um gerenciador de pacotes Windows (similar ao apt-get e yum) - Eu na TI
Quem usa Linux já está super acostumado a utilizar gerenciadores de pacotes como o yum e apt-get para baixar, instalar, remover ou atualizar os pacotes do seu sistema operacional. No Windows, é aquela trabalheira: temos que baixar manualmente os softwares, alguns possuem atualizações automáticas enquanto outros ficam lá desatualizados para sempre. Para resolver esse problema, temos o excelente Chocolatey em ação:
Fonte: https://raw.githubusercontent.com/wiki/chocolatey/choco/images/gifs/choco_install.gif
O Chocolatey é um gerenciador de pacotes para Windows (muito similar ao apt-get ou yum), com mais de 5.000 pacotes únicos disponíveis (os softwares mais utilizados para Windows estão lá), além de 170 milhões de instalações de pacotes já realizadas. Como exemplo, para instalar o Libre Office no Linux com apt-get, você utilizaria:
No Windows, o comando equivalente do Chocolatey é:
Utilizo o Linux desde 2004, já compilei "muito kernel" e muitos softwares na época em que os gerenciadores de pacotes do Linux ainda eram bem limitados, mas antes que apareça um fanboy me mandando usar Linux, segue minha réplica. 😉
Brincadeiras à parte, como profissionais de TI, devemos estar preparados para ambientes organizacionais heterogêneos e prontos para trabalhar em ambientes de desenvolvimento diversos. Tais ambientes, por muitas vezes, envolvem o Windows. Então, que façamos um uso profissional dele.
Windows 7 ou 10 / Windows Server 2003 (ou superior);
PowerShell v2+ (já vem instalado no Windows 7 e 10);
.NET Framework 4+ (o próprio instalador do Chocolatey tentará instalá-lo caso não esteja presente).
Você pode instalar o Chocolatey diretamente a partir do cmd ou do PowerShell.
Para instalar através do cmd, abra uma janela como administrador:
Simples assim. Agora, o comando choco já está disponível para utilização.
Ainda em um cmd como administrador (ou no PowerShell), vamos buscar pelo software Audacity (editor de áudio).
Basta usar o comando search:
C:\>choco search audacity
audacity 2.1.3 [Approved]
audacity-lame 3.99.3 [Approved] Downloads cached for licensed users
mobalivecd 2.1 - Possibly broken
Para instalar o Audacity, utilize o comando install:
C:\>choco install audacity
Progress: Downloading audacity 2.1.3... 100%
audacity v2.1.3 [Approved]
audacity package files install completed. Performing other installation steps.
The package audacity wants to run 'chocolateyInstall.ps1'.
Installing audacity...
audacity has been installed.
audacity installed to 'C:\Program Files (x86)\Audacity'
audacity registered as audacity
audacity can be automatically uninstalled.
The install of audacity was successful.
Software installed to 'C:\Program Files (x86)\Audacity\'
Pronto, o Audacity já está instalado na sua máquina.
Observe que durante a instalação tive que confirmar com Y a execução do script de instalação do Audacity. Para remover essa confirmação, é execute o comando install com o argumento -y:
Também é possível já deixar o Chocolatey configurado para sempre autorizar as instalações:
C:\>choco feature enable -n allowGlobalConfirmation
Seguem os comandos que podem ser utilizados com o choco:
Para atualizar um pacote, utilize o upgrade:
choco upgrade audacity
Para atualizar todos os pacotes gerenciados pelo Chocolatey e instalados na sua máquina, utilize o upgrade all:
Para ver quais pacotes foram instalados com Chocolatey, utilize o list com o argumento -l:
C:\>choco list -l
keepass.install 2.36
Se você gosta de uma interface gráfica, utilizando o próprio choco, instale o pacote ChocolateyGUI:
Depois, você já pode acessar a interface gráfica:
Chocolatey GUI – Interface Gráfica
Na interface, é possível listar os pacotes instalados localmente, atualizar pacotes, remover pacotes:
Também é possível pesquisar por pacotes e instalá-los:
Pesquise e instale pacotes
Se você já trabalhou com ferramentas de gerenciamento de configuração ou automação como Puppet, Chef ou Ansible, deve estar pensando que seria maravilhoso ter uma integração com o Chocolatey no Windows. Pois é, já pensaram nisso. 🙂 Nesta página você encontrará documentações para a integração do Chocolatey com diversas ferramentas de gerenciamento de configuração e automação (para Windows).
Para quem nunca utilizou ferramentas de gerenciamento de configuração, elas nos permitem automatizar o provisionamento de uma máquina, já instalando os pacotes ou softwares necessários, fazendo configurações, subindo serviços, e por aí vai. .
Olha esse exemplo de Puppetfile (arquivo do Puppet):
source => 'https://my.internal.repository/api/v2',
Ele garante que o pacote git estará instalado e o provider será o Chocolatey. Faça isso para todos os demais softwares necessários em seu ambiente Windows e utilize as demais diretivas do Puppet (Exec, Service, …) e seu ambiente Windows ficará totalmente replicável e documentado. Maravilhas!! 🙂
O legal dessas ferramentas é tratar sua infra estrutura como código (você pode versionar o arquivo do Puppet acima) e ter a facilidade de reconstruir seu ambiente facilmente (por exemplo, para um novo desenvolvedor que chegou na equipe).
Particularmente, acho que o Chocolatey é o tipo de projeto que deveria ser suportado pela Microsoft.
Convenhamos, a Loja da Microsoft é ruim demais e está longe de um apt-get ou yum.
Há muitos anos os gerenciadores de pacotes são uma realidade no Linux e raramente precisamos baixar ou compilar um software na mão (quando comecei a trabalhar com Linux em 2004, ainda tinha que compilar muitas coisas, mas hoje é raro ter que compilar algo).