it-swarm-pt.tech

Qual é a diferença real entre "apt-get" e "aptitude"? (Que tal "wajig"?)

Eu sei que ambos apt-get e aptitude são interfaces de gerenciamento de pacotes de linha de comando no Linux derivado do Debian, com opções diferentes, mas ainda estou um pouco confuso. Sob o capô, eles não estão usando o mesmo sistema APT sistema?

Por que o Debian mantém essas ferramentas paralelas? (Pergunta bônus: o que diabos é wajig ?)

259
Kevin Cantu

A diferença mais óbvia é que aptitude fornece uma interface de menu de terminal (semelhante ao Synaptic em um terminal), enquanto apt-get não.

Considerando apenas as interfaces de linha de comando de cada uma, elas são bastante semelhantes e, na maioria das vezes, realmente não importa qual delas você usar. As versões recentes de ambos rastrearão quais pacotes foram instalados manualmente e quais foram instalados como dependências (e, portanto, elegíveis para remoção automática). De fato, acredito que, ainda mais recentemente, as duas ferramentas foram atualizadas para compartilhar o mesmo banco de dados de pacotes instalados manualmente ou automaticamente, portanto, casos em que você instala algo com o apt-get e depois o aptitude deseja desinstalá-lo são principalmente uma coisa do o passado.

Existem algumas pequenas diferenças:

  • o aptitude removerá automaticamente pacotes elegíveis, enquanto o apt-get requer um comando separado para fazer isso
  • Os comandos para pgrade vs. dist-upgrade foram renomeados no aptitude para os nomes provavelmente mais precisos (upgrade seguro e completo -upgrade, respectivamente.
  • o aptitude realmente executa as funções não apenas do apt-get, mas também de algumas de suas ferramentas complementares, como apt-cache e apt-mark.
  • o aptitude possui uma sintaxe de consulta ligeiramente diferente para pesquisa (em comparação com o apt-cache)
  • o aptitude possui os comandos why e why-not para informar quais pacotes instalados manualmente estão impedindo uma ação que você pode querer executar.
  • Se as ações (instalação, remoção, atualização de pacotes) que você deseja executar causam conflitos, o aptitude pode sugerir várias possíveis soluções. O apt-get dirá "Sinto muito, Dave, não posso permitir que você faça isso".

Existem outras pequenas diferenças, mas essas são as mais importantes em que consigo pensar.

Resumindo, o aptitude pertence mais apropriadamente à categoria com o Synaptic e outras interfaces de gerenciador de pacotes de nível superior. Acontece que também possui uma interface de linha de comando que se assemelha ao apt-get.

Rodada de Bônus: O que é wajig?

Lembra-se de como mencionei essas ferramentas "complementares", como apt-cache e apt-mark? Bem, existem vários deles, e se você os usa muito, talvez não se lembre de quais fornecem quais comandos. O wajig é uma solução para esse problema. É essencialmente um expedidor, um invólucro em torno de todas essas ferramentas. Também se aplica ao Sudo quando necessário. Quando voce diz wajig install foo, wajig diz "Ok, install é fornecido por apt-get e requer privilégios de administrador ", e executa Sudo apt-get install foo. Quando voce diz wajig search foo, wajig diz "Ok, search é fornecido por apt-cache e não requer privilégios de administrador ", e executa apt-cache search foo. Se você usa wajig em vez de apt-get, apt-mark, apt-cache e outros, nunca terá esse problema:

$ apt-get search foo
E: Invalid operation search

Se você quiser saber o que o wajig está fazendo nos bastidores, quais ferramentas ele está usando para implementar um comando específico, ele possui --simulate e --teaching modos.

Dois comandos wajig que eu costumo usar são wajig listfiles foo e wajig whichpkg /usr/bin/foo.

225
Ryan C. Thompson

Eu sempre me perguntei. destaques da Wikipedia que a principal característica distintiva é que o aptitude possui uma interface de modo de texto em tela cheia (maldições). O fato de você poder usar a maioria dos argumentos de comando apt-get Com o próprio aptitude é apenas uma decisão de design para tornar mais fácil para os usuários do apt-get Mover para aptitude e vice-versa.

Eu nunca usei wajig, mas a documentação sugere que é apenas um script que sabe se você está passando um arquivo deb (quando ele executa dpkg) ou um apt nome do pacote (quando executa apt-get). Você poderia experimentar e ver se é isso que faz?

Obviamente, a diferença real é:

[email protected]:~$ apt-get moo
         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...
[email protected]:~$ aptitude moo
There are no Easter Eggs in this program.
71
Gaurav

o aptitude é o programa preferido para gerenciamento de pacotes do console, tanto para instalações de pacotes quanto para atualizações de pacotes ou sistemas no Debian.

Aqui está uma visão geral da ferramenta e dos recursos que ela possui sobre o apt-get: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

Então, meu conselho é apenas o apt-get install aptitude :)

26
dsp

aptitude lembra quais pacotes foram solicitados explicitamente e quais foram instalados apenas devido a dependências. Ele desinstalará automaticamente pacotes que não foram solicitados explicitamente quando não forem mais necessários.

apt-get trata os pacotes solicitados explicitamente e suas dependências da mesma forma.

Portanto, é melhor usar aptitude, isso ajuda a manter seu sistema limpo.

20
starblue

apt-get, assim como as várias ferramentas complementares, usam significativamente menos memória que as respectivas chamadas de linha de comando de aptitude e são um pouco mais rápidas. Eu estava felizmente inconsciente disso até tentar atualizar a instalação do debian em um thinkpad pentium antigo e enrolado, com 32 MB de RAM. Levaria uma ou duas horas de troca-troca para executar apt-get, que foi concluído com sucesso; aptitude falharia depois de um longo período de tempo.

Essa distinção é mais ou menos irrelevante em qualquer coisa semelhante a um sistema de desktop moderno.

12
intuited

Com base na resposta de @ Gaurav, os ovos de páscoa nos dois gerenciadores de pacotes são bem engraçados !:

[email protected]:~$ apt-get  moo
             (__) 
             (oo) 
       /------\/ 
      / |    ||   
     *  /\---/\ 
        ~~   ~~   
..."Have you mooed today?"...

[email protected]:~$ aptitude  moo
There are no Easter Eggs in this program.
[email protected]:~$ aptitude -v moo
There really are no Easter Eggs in this program.
[email protected]:~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
[email protected]:~$ aptitude -vvv moo
Stop it!
[email protected]:~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
[email protected]:~$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
[email protected]:~$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.
[email protected]:~$ aptitude -vvvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.
[email protected]:~$ aptitude -vvvvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.

e assim por diante.

9
Siddhartha

Eles oferecem a mesma funcionalidade básica: instalar e remover pacotes da linha de comando.

Aqui uma comparação mais detalhada, publicada no site buntu Stack Exchange : https://askubuntu.com/questions/1743/is-aptitude-really- melhor-do-que-apt-get/1749 # 1749

8
Riccardo Murri

Como mencionado, o http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitude possui uma interface de linha de comando muito mais fácil de usar.

Sob o capô, eles não estão usando o mesmo sistema APT sistema? Sim.

O sistema subjacente não é apenas apt, mas dpkg. Este sistema é tão burro quanto o RPM, ele só pode lidar com a instalação e administração de pacotes únicos. Ele rastreia quais arquivos instalados pertencem a qual pacote.

apt lida com downloads de repositórios, rastreamento de dependências etc. para todos os pacotes individuais - que são instalados usando dpkg. aptitude faz o mesmo, com uma interface diferente.

7
vdboor

Não tenho certeza se isso ainda é válido, mas o desenvolvedor do Debian do Edge, Joey Hess, sempre costumava defender o apt-get sobre o apt-get. É claro que as coisas mudam à medida que o software evolui. O Apt-get agora lida com dependências melhor do que costumava. From http://lists.debian.org/debian-user/2004/04/msg03138.html

Data: Terça-feira, 20 de abril de 2004 22:27:12 -0400 De: Joey Hess

Nove razões pelas quais você deve usar o aptitude em vez de apt-get ou dselect.

  1. aptitude pode parecer com apt-get

    Se você executar o 'aptitude update' ou 'aptitude upgrade' ou 'aptitude install', ele parecerá e funcionará exatamente como o apt-get, com alguns aprimoramentos. Portanto, não há curva de aprendizado.

    (Se você é um usuário do dselect, a curva de aprendizado obviamente não é um dos seus problemas.)

  2. o aptitude rastreia pacotes instalados automaticamente

    Pare de se preocupar com a remoção de bibliotecas não utilizadas e pacotes de suporte do seu sistema. Se você usar o aptitude para instalar tudo, ele acompanhará quais pacotes são puxados apenas pelas dependências e os removerá quando não forem mais necessários.

  3. aptitude lida com sanidade recomenda

    Um fracasso de longa data do apt-get tem sido a falta de suporte para o relacionamento com Recomendações. O que é um problema, porque muitos pacotes no Debian dependem do Recomendável para obter software que o usuário comum geralmente usa com o pacote. Essa é uma causa incomum de problemas, mesmo que o apt-get recentemente tenha conseguido mencionar pelo menos os pacotes recomendados, é fácil perder seus avisos.

    O Aptitude suporta Recomendações por padrão e também pode ser configurado para suportar Sugestões. Ele também suporta a instalação de pacotes recomendados quando usado no modo de linha de comando.

  4. use o aptitude como um usuário normal e evite mangueira no seu sistema

    Talvez você não saiba que pode executar o aptitude no modo GUI como um usuário comum. Faça as alterações que você deseja experimentar. Se você entrar em uma confusão real, poderá pressionar 'q' e sair, suas alterações não serão salvas. (O Aptitude também permite que você use ctrl-u para desfazer as alterações.) Como ele está funcionando como um usuário normal, você não pode usar o seu sistema até instruir o aptitude a fazer alguma coisa; nesse momento, solicitará sua senha de root.

  5. o aptitude possui uma poderosa interface de usuário e recursos de pesquisa

    Entre o navegador categórico do aptitude e seu ótimo suporte para filtragem no estilo mutt e pesquisa de pacotes por nome, descrição, mantenedor, dependências etc., você deve encontrar pacotes mais rapidamente do que nunca, usando o aptitude.

  6. o aptitude facilita o rastreamento de software obsoleto

    Se o Debian parar de distribuir um pacote, o apt o deixará no seu sistema indefinidamente, sem avisos e atualizações. O Aptitude lista esses pacotes na seção "Pacotes obsoletos e criados localmente", para que você possa ser informado sobre o problema e fazer algo a respeito.

  7. o aptitude possui uma interface para o sistema de tarefas Debian

    O Aptitude permite que você use o sistema de tarefas do Debian como ele foi projetado para ser usado. Você pode procurar as tarefas disponíveis, selecionar uma tarefa para instalação e, em seguida, pesquisar nela e desmarcar partes da tarefa que não deseja. O apt-get não tem suporte para tarefas, e o aptitude é melhor até do que ferramentas para fins especiais, como o tasksel.

  8. aptitude suporta múltiplas fontes

    Se o seu sources.list estiver configurado para disponibilizar várias versões de um pacote, o aptitude permite pesquisar detalhadamente as versões disponíveis e escolher uma versão não padrão para instalar. Se um pacote for instável, basta revertê-lo para a versão em teste.

  9. o aptitude registra suas ações

    Pacote de logs do Aptitude que instala, atualiza e remove para/varlog/aptitude, o que pode ser útil para descobrir por que as coisas começaram a falhar após a atualização de ontem ou quando você removeu um pacote partiticlar.

- veja tímido jo

=================== há também uma discussão mais recente a partir de 2010 aqui https://superuser.com/questions/93437/aptitude-vs-apt- obtenha-a-ferramenta-recomendada-a-direita-a-usar no StackExchange.

6
manselton

Tanto o apt-get quanto o aptitude dependem da biblioteca APT, sim.

Veja meu resposta em serverfault.com .

O Debian não é uma entidade monolítica, existem pessoas com opiniões diferentes e o mantenedor do aptitude decidiu que o apt-get tinha algumas falhas e queria criar algo melhor com o aptitude. Ele aprimorou a lógica para encontrar soluções para cenários complexos de atualização, adicionou uma GUI para o console etc. E há mais do que apenas apt-get e aptitude, veja meu artigo apt-get, aptitude,… escolha o pacote certo gerente para você .

6
Raphaël Hertzog