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 ?)
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:
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.
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
.
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.
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 :)
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.
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.
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.
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
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.
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.
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.)
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.
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.
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.
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.
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.
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.
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.
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.
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ê .