Pacotes no Cygwin

cygwin_setup

Conhece o Cygwin? Ele permite criar um ambiente UNIX-like dentro de uma instalação de Windows. Ou seja, ele cria uma camada de emulação que provê as chamadas necessárias do padrão POSIX para que programas de UNIX sejam executados sem alterações de dentro do sistema operacional da Microsoft. É muito prático para manter um conjunto uniforme de ferramentas de administração nos servidores ou, daí o motivo que inicialmente me levou a ele, fugir do putty.exe!

Que me perdoem os fãs/usuários do programa mas com ele não dá pra fazer:

$ ssh user1@host1 'df -h' > host1-free.txt

Mas ele tem uma coisa que vai se tornando chata com o tempo. A necessidade de usar o instalador (este sujeito abaixo) toda vez que se é preciso adicionar ou atualizar um programa. Para quem nunca experimento, é como uma nova instalação! Executa-se o instalador (setup-x86.exe), seleciona se é para instalar ou apenas baixar os programas, onde ele criará o ROOT, se a instalação é exclusiva do usuário atual ou para todos os da máquina, onde colocar os programas que serão baixados, qual será o mirror dos arquivos etc.

Felizmente há uma solução! É uma ferramenta que foi escrita em Bash por Stephen Jungels e se chama apt-cyg. Ela implementa um sistema de gerenciamento de pacotes integrado com a base de dados do instalador padrão do Cygwin. Ou seja, eles passam a compartilhar o mesmo “conhecimento”, assim instalando/atualizando/removendo um programa em um deles o outro ficará sabendo do ocorrido.

Instalação

Para instalar o apt-cyg, baixe-o a partir do próprio console do Cygwin com:

lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg>apt-cyg

Se você tiver problemas com o lynx use o wget ou baixe pela página do GitHub e salve no $HOME do seu usuário no Cygwin. Daí instale-o no diretório padrão dos programas com:

install apt-cyg /bin

Utilização

Para quem conhece o apt-get e o yum verá que há uma certa familiaridade. Assim como acontece neles, a ação desejada é passada por linha de comando junto com os demais parâmetros:

apt-cyg {comando} <pacote 1>{<pacote 2>{<pacote 3>{ ... }}}

Os principais comandos são:

install
Instala um ou mais pacotes::

apt-cyg install nano

remove
Remove um ou mais pacotes:

apt-cyg remove nano

update
Atualiza a base de dados de programas do repositório (é recomendável executá-lo antes de instalar um novo programa):

apt-cyg update

download
Apenas irá baixar o pacote/os pactes, nada será instalado:

apt-cyg download vim

show
Exibe informações sobre o pacote/os pacotes:

apt-cyg show mc

depends
Produz a árvore de dependência daquele pacote (prepare-se!):

apt-cyg depends mc

list
Procura o texto específico nos pacotes que se encontram instalados:

apt-cyg list pico

search
Igual ao anterior mas buscando na lista de pacotes disponíveis para download:

apt-cyg search ssh

Há outros comandos que preferi não listar aqui, para saber quais são e também obter mais detalhes use:

apt-cyg help

“Screenshot”

Sempre que um novo programa é apresentado aquilo que a pessoa realmente quer ver é uma tela dele em operação (e isto vem desde o tempo em que os screenshots eram produzidos literalmente com uma câmera fotográfica apontada para o vídeo). Mas como não caberia tudo ma tela, um exemplo de como fica a instalação de um programa.

$ apt-cyg install vim
Installing vim
--2015-05-06 20:45:47--  http://mirrors.kernel.org/sourceware/cygwin//
x86/release/vim/vim-7.4.692-1.tar.xz
Resolvendo mirrors.kernel.org (mirrors.kernel.org)... 149.20.37.36, 19
8.145.20.143
Conectando-se a mirrors.kernel.org (mirrors.kernel.org)|149.20.37.36|:
80... conectado.
A requisição HTTP foi enviada, aguardando resposta... 200 OK
Tamanho: 952880 (931K) [application/octet-stream]
Salvando em: “vim-7.4.692-1.tar.xz”
vim-7.4.692-1.tar.x 100%[=====================>] 930,55K   256KB/s   e
m 4,0s
2015-05-06 20:45:51 (232 KB/s) - “vim-7.4.692-1.tar.xz” salvo [952880/
952880]
vim-7.4.692-1.tar.xz: SUCESSO
Unpacking...
Package vim requires the following packages, installing:
bash libgcc1 libiconv2 libintl8 libncursesw10 vim-common cygwin
Package bash is already installed, skipping
Package libgcc1 is already installed, skipping
Package libiconv2 is already installed, skipping
Package libintl8 is already installed, skipping
Package libncursesw10 is already installed, skipping
Installing vim-common
--2015-05-06 20:45:52--  http://mirrors.kernel.org/sourceware/cygwin//
x86/release/vim/vim-common/vim-common-7.4.692-1.tar.xz
Resolvendo mirrors.kernel.org (mirrors.kernel.org)... 149.20.37.36, 19
8.145.20.143
Conectando-se a mirrors.kernel.org (mirrors.kernel.org)|149.20.37.36|:
80... conectado.
A requisição HTTP foi enviada, aguardando resposta... 200 OK
Tamanho: 4919816 (4,7M) [application/octet-stream]
Salvando em: “vim-common-7.4.692-1.tar.xz”
vim-common-7.4.692- 100%[=====================>]   4,69M   255KB/s   e
m 19s
2015-05-06 20:46:11 (252 KB/s) - “vim-common-7.4.692-1.tar.xz” salvo [
4919816/4919816]
vim-common-7.4.692-1.tar.xz: SUCESSO
Unpacking...
Package vim-common requires the following packages, installing:
bash gawk perl_base tcsh xxd cygwin
Package bash is already installed, skipping
Package gawk is already installed, skipping
Package perl_base is already installed, skipping
Package tcsh is already installed, skipping
Package vim installed 

Fechando

Mas uma coisa que faz falta no apt-cyg, Ele justamente não ter uma forma automatizada de verificar quais são os programas que possuem versões mais atuais disponíveis e, claro, atualizá-los (um análogo aos upgrade e update presentes, respectivamente, no apt-get e yum). Mas, ainda sim é bem mais prático do que precisar recorrer ao instalador.

Anúncios

2 comentários sobre “Pacotes no Cygwin

  1. Pingback: Introdução ao SQLite3 | giovannireisnunes

  2. Pingback: E o Windows 10 venceu… | giovannireisnunes

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s