Aptidão versus apt-get: Qual é a ferramenta recomendada (também conhecida como "direita") a ser usada?

93

Algum tempo atrás eu li que aptitude é a ferramenta preferida para instalação em sistemas baseados em Debian. Mas quando você pesquisa como administrar um sistema baseado no Debian, então o aptitude raramente é mencionado. A maioria das pessoas parece preferir apt-get - e isso é verdade para as páginas wiki do Debian!

Assim, estou me perguntando se perdi alguma coisa. Qual é a ferramenta certa para usar?

    
por Vokuhila-Oliba 09.01.2010 / 10:42

5 respostas

72

aptitude e apt-get funcionam da mesma forma para muitas tarefas, mas para os casos mais complicados, como atualizações de distribuição ( apt-get dist-upgrade vs. aptitude full-upgrade ), eles têm regras diferentes e as regras do aptitude são quase sempre melhor na prática onde eles discordam.

O motivo pelo qual você vê mais documentação para apt-get sobre aptitude é principalmente a inércia: aptitude não foi o front-end recomendado para o APT por tanto tempo, boa parte da documentação existente não foi atualizada, e há muitas pessoas que reconhecem as vantagens de aptitude over apt-get , mas usam apt-get reflexivamente.

Recentemente cheguei ao ponto em que geralmente acompanho apt com i e não - quando digito.

Postscript Observe que as regras usadas em apt-get e aptitude são alvos em movimento - como Hubert observa nos comentários, o caminho de atualização recomendado do Debian Lenny agora usa apt-get , não aptitude . Isso reflete o fato de que apt-get rastreia menos estado sobre o pacote atual do que aptitude e, portanto, não precisa se preocupar com o fato de o estado do APT não ser "limpo" e porque as regras apt-get são mais inteligentes do que costumavam estar. Eu ainda uso e recomendo aptitude over apt-get , mas é uma recomendação com mais nuances

    
por 26.02.2010 / 20:42
19

aptitude torna conveniente mostrar quais programas em uma pesquisa você já instalou no sistema (com a ajuda de grep ):

aptitude search flash | grep ^i

Na verdade, a pesquisa de aptitude é muito mais poderosa do que a obtida por meio do grep , pois ela oferece suporte à pesquisa contextual:

, por exemplo, encontra todos os pacotes com 'flash' no nome do pacote instalado:

aptitude search '~iflash'

Uma "forma longa" equivalente da "forma abreviada" ~i :

aptitude search '?installed(flash)'

Observe que os padrões de pesquisa são gratuitos (não ancorados) por padrão. Para ancorá-los, você precisa usar padrões de âncora ' ^ ' (início da string) e / ou ' $ ' (fim da string).

Para encontrar todos os pacotes cujos nomes começam com 'ttf' ou 'fonte':

aptitude search '(^ttf|^font)'

(Nota: esta é uma solução para um bug em aptitude , pois o regex correto de '^(ttf|font)' não funciona corretamente - ele encontra pacotes cujos nomes começam com 'ttf' ou contêm 'fonte'.)

Outros recursos interessantes do aptitude :

Mostrar todos os pacotes com 'firmware' em seu nome que também possuem 'wireless' em sua descrição:

aptitude search 'firmware ~dwireless'

ou longa forma:

aptitude search '?and(?name(firmware),?description(wireless))'

(Nota: no formulário curto, os argumentos delimitados por espaço são ANDed entre aspas; se forem passados como argumentos de linha de comando argv [] separados, eles são ORed.)

p   atmel-firmware       - Firmware for Atmel at76c50x wireless networking chips.
p   firmware-atheros     - Binary firmware for Atheros wireless cards
...
p   libertas-firmware    - Firmware for Marvell's libertas wireless chip series
p   zd1211-firmware      - Firmware images for the zd1211rw wireless driver

~U mostra todos os pacotes que podem ser atualizados de suas versões atuais com novas versões:

# aptitude update ; aptitude versions '~U'
Package virtualbox-4.1:            
i   4.1.18-78361~Debian~squeeze                       100
p   4.1.20-80170~Debian~squeeze     <NULL>            500

Mostrar pacotes que recomendam "gcc-multilib"

$ aptitude search '~DRecommends:gcc-multilib'
i   libc6-dev-i386   - Embedded GNU C Library: 32-bit development libraries for AMD64

Explique por que o 'fuse-utils' pode precisar ser instalado

$ aptitude why fuse-utils
i   xorg           Depends    xterm | x-terminal-emulator
pi  gnome-terminal Provides   x-terminal-emulator
pi  gnome-terminal Recommends gvfs
pi  gvfs           Depends    libgdu0 (>= 2.29.90)
pi  libgdu0        Depends    udisks (< 1.1.0)
pi  udisks         Recommends ntfsprogs
pi  ntfsprogs      Depends    fuse-utils (> 2.5.0)

(Este exemplo mostra algumas das loucuras resultantes do padrão desde a instalação de todos os pacotes "Recommends". A instalação do gnome-terminal acaba instalando o ntfsprogs e o fuse-utils, egad! Acho que a maioria das pessoas só quer o perspectiva de terminal e não a integração integrada do NTFS, que é opcional, a menos que eles especificaram.)

Encontre todos os pacotes que fornecem o serviço "mail-transport-agent":

$ aptitude search '?provides(mail-transport-agent)'
p   citadel-mta          - complete and feature-rich groupware server (mail transport agent)
...
p   nullmailer           - simple relay-only mail transport agent
p   postfix              - High-performance mail transport agent
i   sendmail-bin         - powerful, efficient, and scalable Mail Transport Agent
p   ssmtp                - extremely simple MTA to get mail off the system to a mail hub
p   xmail                - advanced, fast and reliable ESMTP/POP3 mail server

Mostrar todos os nomes de pacotes instalados, que não são essenciais nem automaticamente instalados por dependências:

$ aptitude search '~i!(~E|~M)' -F '%p'

Infelizmente, esse material é bastante mal documentado e difícil de encontrar, mas aqui é a melhor referência (do mantenedor do 'aptitude').

    
por 20.06.2012 / 12:53
4

De acordo com a FAQ do Debian GNU / Linux sobre gerenciamento de pacotes , o aptitude é mais complexo que o apt-get e depende das ferramentas menos complexas de gerenciamento de pacotes apt-get e dpkg.

Portanto, para necessidades mais simples, você pode usar as ferramentas mais simples, enquanto que, para necessidades mais complexas, você pode contar com a ferramenta mais sofisticada (apitude).

Citado a partir do Debian FAQ: "O aptitude fornece a funcionalidade do dselect e do apt-get, assim como muitos recursos adicionais não encontrados em nenhum programa."

    
por 15.08.2012 / 23:52
3

O aptitude marca pacotes que foram instalados devido a uma dependência com a marca automática. Se você agora limpar ou remover um pacote, o aptitude removerá automaticamente os pacotes instalados automaticamente que não são mais usados junto com o pacote que você deseja limpar ou remover.

Esta é a principal razão pela qual eu pessoalmente acho que a aptidão é sempre melhor do que adequada.

    
por 16.08.2012 / 02:54
2

Não há ferramenta certa, você pode misturar & combinar com ambos, dependendo do que você achar mais conveniente para a tarefa em questão. O aptitude é uma ótima ferramenta para testar usuários / sid, mas ele tende a ser menos confiável para atualizações distantes de um estábulo para o próximo. Veja meu artigo apt-get, aptitude,… escolha o gerenciador de pacotes certo para você .

    
por 21.06.2011 / 10:49