Páginas

quinta-feira, 26 de setembro de 2013

Ubuntu - AptGet

Gerenciamento de pacotes com o APT

Comandos

A maioria destes comandos requer sudo!
Substitua "nome_pacote" ou "termo" pelo programa que você quer instalar ou procurar.
  • apt-get update - Execute este comando se você mudou o /etc/apt/sources.list ou /etc/apt/preferences. Também execute-o periodicamente para ter a certeza que sua lista de fontes fique sempre atualizada.
  • apt-get install nome_pacote - instala um novo pacote (veja também aptitude, abaixo)
  • apt-get remove nome_pacote - remove um pacote (os arquivos de configuração não são excluídos)
  • apt-get --purge remove nome_pacote - remove um pacote (os arquivo de configuração também sçao excluídos)
  • apt-get upgrade - atualiza todos os pacotes instalados
  • apt-get dist-upgrade - atualiza o sistema todo para uma nova versão
  • apt-cache search termo - procura por "termo" na lista de pacotes disponíveis
  • dpkg -l nome_pacote - lista os pacotes instalados que casam com "nome_pacote". Na prática use '*nome_pacote*', a não ser que você saiba o nome completo do pacote.
  • aptitude - O Aptitude é uma interface em modo texto para o sistema de pacotes Debian GNU/Linux e derivados. Assim como o apt-get, permite ver a lista de pacotes e realizar operações como instalação, atualização e remoção de pacotes, porém parece tratar um tanto quanto melhor a questão das dependências.
  • apt-cache showpkg pacotes - mostra informações sobre os pacotes
  • apt-cache dumpavail - mostra uma lista de pacotes disponíveis.
  • apt-cache show pacotes - mostra registros dos pacotes, igual a dpkg --print-avail.
  • apt-cache pkgnames - rápida listagem de todos os pacotes instalados no sistema.
  • dpkg -S nome_arquivo - qual foi o pacote que instalou este arquivo?
  • dpkg -L pacote - Mostra os arquivos instalados pelo pacote.
  • apt-file search NomeArquivo - Este comando procura por um pacote, não necessariamente precisa estar instalado, que inclua o arquivo passado junto a linha de comando (NomeArquivo. Ou seja, muito útil para localizar facilmente arquivos individuais dentro de pacotes que ainda nem se encontram instalados no seu sistema.
  • apt-get autoclean - Execute este comando periodicamente para excluir os arquivos .deb que não estão mais instalados no seu sistema. Pode-se ganhar uma grande quantidade de espaço em disco fazendo isso. Se você está desesperado por espaço em disco, apt-get clean é mais radical, e removerá todos os arquivos .deb, mesmo de pacotes instalados. Como na maioria dos casos você não precisa destes arquivos .deb, não hesite em usar este comando quando precisar de uns megas extras.
  • apt-cdrom add - Comando utilizado para adicionar um CD ao arquivo /etc/apt/sources.list do APT, fazendo assim com que o apt-get procure também neste CD por pacotes.

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_pacotecaso 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.

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.
Icones/erro.png
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
Mantenedorarlei

Nenhum comentário:

Postar um comentário