.png)
Eu sei que ambas apt-get
são aptitude
interfaces de gerenciamento de pacotes de linha de comando no Linux derivado do Debian, com opções diferentes, mas ainda estou um pouco confuso. Nos bastidores, eles não estão usando o mesmo sistema APT?
Por que o Debian mantém essas ferramentas paralelas? (Pergunta bônus: o que diabos éwajig?)
Responder1
A diferença mais óbvia é que aptitude
fornece uma interface de menu de terminal (muito parecida com o Synaptic em um terminal), mas apt-get
não.
Considerando apenas as interfaces de linha de comando de cada um, elas são bastante semelhantes e, na maioria das vezes, não importa qual delas você usa. 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). Na verdade, acredito que ainda mais recentemente, as duas ferramentas foram atualizadas para realmente compartilhar o mesmo banco de dados de pacotes instalados manualmente e automaticamente, então os casos em que você instala algo com o apt-get e o aptitude deseja desinstalá-lo são principalmente uma coisa de o passado.
Existem algumas pequenas diferenças:
- O aptitude removerá automaticamente os pacotes elegíveis, enquanto o apt-get requer um comando separado para fazer isso
- Os comandos paraatualizarvs.atualização distforam renomeados em aptidão para os nomes provavelmente mais precisosatualização seguraeatualização completa, respectivamente.
- O aptitude na verdade executa as funções não apenas do apt-get, mas também de algumas de suas ferramentas complementares, como o apt-cache e o apt-mark.
- o aptitude tem uma sintaxe de consulta ligeiramente diferente para pesquisa (em comparação com o apt-cache)
- aptidão tem opor queepor que nãocomandos para dizer qualinstalado manualmentepacotes estão impedindo uma ação que você talvez queira realizar.
- Se as ações (instalar, remover, atualizar pacotes) que você deseja realizar causarem conflitos, o aptitude poderá sugerir várias soluções possíveis. O apt-get dirá apenas "Sinto muito, Dave, não posso permitir que você faça isso."
Existem outras pequenas diferenças, mas essas são as mais importantes que consigo imaginar.
Resumindo, o aptitude pertence mais apropriadamente à categoria do Synaptic e de outros front-ends de gerenciamento de pacotes de nível superior. Acontece que também possui uma interface de linha de comando semelhante ao apt-get.
Rodada de bônus: O que é wajig?
Lembra como mencionei aquelas ferramentas "companheiras" como apt-cache
e apt-mark
? Bem, há vários deles e, se você os usa muito, talvez não se lembre de quais fornecem quais comandos. wajig
é uma solução para esse problema. É essencialmente um despachante, um invólucro de todas essas ferramentas. Também se aplica sudo
quando necessário. Quando você diz wajig install foo
, wajig diz "Ok, install
é fornecido por apt-get
e requer privilégios de administrador" e é executado sudo apt-get install foo
. Quando você diz wajig search foo
, wajig diz "Ok, search
é fornecido por apt-cache
e não requer privilégios de administrador" e é executado apt-cache search foo
. Se você usar wajig em vez de apt-get, apt-mark, apt-cache e outros, você nunca terá este 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
modos --teaching
.
Dois comandos wajig que uso com frequência são wajig listfiles foo
e wajig whichpkg /usr/bin/foo
.
Responder2
Muitas vezes me perguntei.Destaques da Wikipédiaque a principal característica distintiva é que o aptitude possui uma interface em modo texto (maldições) em tela cheia. O fato de você poder usar a maioria apt-get
dos argumentos de comando consigo aptitude
mesmo é apenas uma decisão de design para facilitar a apt-get
migração dos usuários aptitude
e vice-versa.
Eu nunca usei wajig
, mas a documentação sugere que é apenas um script que sabe se você está passando um deb
arquivo (quando é executado dpkg
) ou um apt
nome de pacote (quando é executado apt-get
). Você poderia experimentar e ver se é isso que acontece?
Claro, orealdiferença é:
gaurav@fern:~$ apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
...."Have you mooed today?"...
gaurav@fern:~$ aptitude moo
There are no Easter Eggs in this program.
Responder3
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 em relação ao apt-get: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude
Então, meu conselho é apenas apt-get install aptitude :)
Responder4
Com base na resposta do @Gaurav, os ovos de páscoa nos dois gerenciadores de pacotes são bem engraçados!:
siddhartha@siddhartha-dev:~$ apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
siddhartha@siddhartha-dev:~$ aptitude moo
There are no Easter Eggs in this program.
siddhartha@siddhartha-dev:~$ aptitude -v moo
There really are no Easter Eggs in this program.
siddhartha@siddhartha-dev:~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
siddhartha@siddhartha-dev:~$ aptitude -vvv moo
Stop it!
siddhartha@siddhartha-dev:~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
siddhartha@siddhartha-dev:~$ aptitude -vvvvv moo
All right, you win.
/----\
-------/ \
/ \
/ |
-----------------/ --------\
----------------------------------------------
siddhartha@siddhartha-dev:~$ aptitude -vvvvvv moo
What is it? It's an elephant being eaten by a snake, of course.
siddhartha@siddhartha-dev:~$ aptitude -vvvvvvv moo
What is it? It's an elephant being eaten by a snake, of course.
siddhartha@siddhartha-dev:~$ aptitude -vvvvvvvv moo
What is it? It's an elephant being eaten by a snake, of course.
e assim por diante.