Gerenciamento de pacotes com o APT

Conteúdo

Introdução

"No princípio era o .tar.gz. Usuários tinham que compilar cada programa que quisessem usar em seus sistemas GNU/Linux. Quando o Debian nasceu, uma nova forma de gerenciamento de pacotes tornou-se necessário. Para este sistema, foi dado o nome dpkg. Este famoso 'pacote' foi o primeiro a chegar nos sistemas GNU/Linux, enquanto antes a Red Hat decidiu criar seu próprio sistema 'RPM'.

Um novo dilema rapidamente tomou conta das mentes dos criadores do GNU/Linux. Eles precisavam de um método rápido, prático e eficiente para instalar pacotes, que deveriam gerenciar automaticamente as dependências e cuidar dos arquivos de configuração ao atualizá-los. Aqui novamente, o Debian mostrou o caminho e deu vida ao APT, o 'Advanced Packaging Tool', que posteriormente foi portado pela Conectiva para uso com o RPM e foi adotado por outras distribuições."

Comandos

A maioria destes comandos requer sudo!
Substitua "nome_pacote" ou "termo" pelo programa que você quer instalar ou procurar.

Usos típicos

Eu quero sentir o vento no meu cabelo, quero a adrenalina da velocidade. Então vamos instalar um jogo de corrida. Mas quais jogos de corrida estão disponíveis para mim?

apt-cache search racing game

Ele me dá um monte de respostas. Vejo um jogo chamado "torcs". Quero mais informações sobre este jogo.

apt-cache show torcs

Hummm, parece interessante. Mas será que este jogo já está instalado no meu computador? E qual é a versão disponível? Está no repositório main ou universe?

apt-cache policy torcs

Tá bem, vamos instalá-lo!

apt-get install torcs

Qual é o comando que eu devo digitar no terminal para iniciar este jogo? Neste exemplo, parece óbvio o nome do comando ("torcs"), mas nem sempre é assim, fácil descobrir. Uma forma de achar o comando que deve ser executado é olhando quais arquivos este pacote instalou em "/usr/bin". Jogos ficam em "/usr/games". Programas administrativos ficam em "/usr/sbin".

dpkg -L torcs|grep /usr/games/

A primeira parte deste comando mostra todos os arquivos instalados pelo pacote "torcs" (experimente). Na segunda parte, nós dizemos que só quero que ele mostre os arquivos dentro de "/usr/games/".

Uau, esse jogo é legal. Será que existem outras pistas/caminhos pra ele?

apt-cache search torcs

But I'm running out of space. I will delete the apt cache!

apt-get clean

Oh não, minha mãe mandou eu remover todos os jogos deste computador. Mas eu quero manter os arquivos de configuração para o caso de uma futura reinstalação.

apt-get remove torcs

Se eu quisesse remover tudo, inclusive os arquivos de configuração:

apt-get remove --purge torcs

Pacotes adicionais

deborphan e debfoster são ótimos para encontrar pacotes órfãos e não necessários que podem ser removidos.

Configurando o apt-get para funcionar através de proxy

Existem três métodos para usar o apt-get através de proxy.

Método 1.

Este é um método temporário que você pode usar manualmente cada vez que precisar usar o apt-get através de um proxy. Use este método para situações temporárias.

Digite esta linha em um terminal imediatamente antes de usar o apt-get (substitua servidor_proxy e porta_proxy pelos dados reais).

export http_proxy=http://servidor_proxy:porta_proxy

Método 2.

Este método usa o arquivo apt.conf, encontrado no diretório /etc/apt. Use-o se você quer que somente o apt-get (e não outras aplicações) use um proxy HTTP permanentemente.

Nota: Em algumas instalações pode ser que não exista ainda do arquivo apt.conf. Se for este o caso, você deve cria-lo.

sudo gedit /etc/apt/apt.conf

Adicione esta linha ao seu arquivo apt.conf, substituindo obviamente o servidor_proxy e porta_proxy pelos dados necessários:

Acquire::http::Proxy "http://servidor_proxy:porta_proxy";

DICA: Caso o servidor proxy necessite de autenticação, substitua a linha do exemplo acima pela abaixo demonstrada, trocando obviamente o usuário e senha, além do servidor_proxy e porta_proxy pelos dados reais necessários.

Acquire::http::Proxy "http://usuario:senha@servidor_proxy:porta_proxy";

Salve o arquivo. Para maiores detalhes sobre as configurações do apt.conf consulte seu manual com o comando abaixo.

man apt.conf

Método 3.

Este método adiciona duas linhas no seu arquivo .bashrc, no seu diretório $HOME. Ele é útil se você quer que o apt-get e outras aplicações (por exemplo: wget) usem um proxy http.

gedit ~/.bashrc

adicione estas linhas no final do seu arquivo .bashrc (substitua servidor_proxy e porta_proxy pelos dados reais):

http_proxy=http://servidor_proxy:porta_proxy
export http_proxy

Salve o arquivo. Feche o terminal e abra outro.

Teste o funcionamento do proxy com sudo apt-get update ou com qualquer outro programa que desejar.

se você cometeu algum erro e alterou o arquivo novamente, lembre-se de fechar o terminal e abri-lo novamente. As alterações não entrarão em vigor até que você faça isso.

Resolvendo problemas

O apt-get é uma ferramenta desenvolvida para ser usada em servidores e outras aplicações importantes. Isto significa que ele foi desenvolvido para ser o mais confiável possível e nunca realizar nenhuma modificação potencialmente perigosa para o sistema, a menos que autorizado por você. Quando qualquer coisa inesperada acontece, ele para e fica esperando sua confirmação antes de fazer qualquer outra coisa.

O problema desta abordagem é que às vezes um defeito em algum pacote ou um download corrompido pode fazer com que o APT fique "travado", sem concluir a instalação de um determinado pacote por causa de um erro qualquer e sem aceitar instalar outros antes que o problema inicial seja resolvido.

Basicamente, quando encontrar este tipo de problema, você deve:

  1. Rodar o apt-get update para ter certeza de que a lista de pacotes do APT se encontra atualizada.

  2. Execute o comando apt-get -f install para usar o sistema de resolução de problemas do APT.

  3. Caso ele não resolva, experimente usar o dpkg -i --force-all para forçar a instalação do pacote com problemas, ou use o dpkg -r nome_do_pacote caso prefira desistir da instalação.

  4. Execute o comando dpkg --configure -a, para verificar todas pendências na configuração dos pacotes.

  5. Rode novamente o apt-get -f install. Caso ele não resolva, experimente o apt-get -f remove, que tem uma função similar à do "-f install", mas dá preferência a remover os pacotes com problemas, ao invés de tentar corrigir a instalação.

Links úteis

Dicas e Truques

1. Definindo prioridade entre os repositórios

Por vezes se faz necessário definirmos determinadas prioridades entre os repositórios para que o APT possa sempre baixar algum pacote de determinado repositório desejado. Para conseguirmos esta condição devemos editar o arquivo /etc/apt/preferences de modo a incluir no mesmo o pacote desejado, a fonte do repositório e o número que irá definir o grau de prioridade respeitando a sintaxe do exemplo abaixo.

ATENÇÃO: Por padrão este arquivo não existe inicialmente no Ubuntu, portanto não se assuste caso não conseguir encontra-lo, bastando apenas cria-lo e editar conforme especificado.

Vejamos um exemplo:

Package: nome_pacote
Pin: origin http://www.debian-multimedia.org
Pin-Priority: 620

Package: nome_pacote
Pin: origin http://www.ibiblio.org
Pin-Priority: 610

Package: nome_pacote
Pin: origin http://www.argon.org
Pin-Priority: 600

Desta forma o pacote (nome_pacote) será atualizado pelo repositório que tiver maior prioridade, mesmo que um repositório de menor prioridade tenha uma versão mais recente do mesmo, no caso, será atualizado a partir dos repositórios em http://www.debian-multimedia.org.

2. Prender versão do pacote

Em determinadas ocasiões pode se fazer necessário prender algum pacote em uma versão especifica, impedindo que o mesmo seja atualizado em seu sistema mesmo que o tenha sido em algum repositório que tenhamos configurado.

Vamos imaginar a seguinte situação, temos um determinado programa que funciona muitíssimo bem e o mesmo é atualizado nos repositórios. Porém sabemos que esta nova versão não funciona corretamente em nosso sistema, então como proceder para mantermos a versão funcional do pacote sem sermos importunados pelo update-notifier com a nova versão disponível.

Como na dica anterior basta editarmos o arquivo /etc/apt/preferences de modo a informar no mesmo qual versão queremos manter para determinado pacote. A sintaxe é semelhante a da dica anterior, porém se fazendo respeitar o exemplo abaixo.

Package: nome_pacote
Pin: version 0.5.3*
Pin-Priority: 600

Desta forma o pacote nome_pacote cuja versão desejada é a 0.5.3* não será atualizado e nem notificado para atualização, independente de uma nova versão estar disponível em seus repositórios. Notar que podemos incluir vários pacotes desejados neste arquivo, bastando apenas disponibiliza-los um-a-um abaixo do outro parecido com o que fizemos no exemplo da dica anterior.

DICA: Podemos facilmente fazer isso também usando a interface gráfica do Synaptic. Basta com o mesmo aberto, selecionar o pacote desejado e clicar na opção de menu Pacote > Prender Versão.

Créditos

Wikifiers: Time de Documentação do Ubuntu Brasil

Data: 15/08/2007

Mantenedor: arlei

Time de Documentação do Ubuntu Brasil


CategoryDocumentacao

AptGet (last edited 2007-09-01 08:46:48 by arlei)