Eu sei que apt-get
e aptitude
são interfaces de gerenciamento de pacote 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?
Por que o Debian mantém essas ferramentas paralelas? (Pergunta bônus: o que diabos é wajig ?)
Comentários
- Eu sei que não é a resposta correta para sua pergunta, mas por que você não pode tentar o sináptico? é muito fácil de usar e baixa e instala dependências automaticamente. O gnome não está presente em seu sistema?
- Eu ‘ sou tendencioso, mas acho esta questão sobre o site do Ubuntu SE pode ser relevante.
- duplicado: unix.stackexchange.com/questions/244/apt-get-or-aptitude .
- @Wim por causa da parte wajig desta questão, decidi mesclar 244 nesta questão em vez do contrário
- Vale a pena notar que o aptitude está programado para remoção da instalação padrão na próxima versão do Ubuntu (embora você sempre possa instalá-lo usando apt-get posteriormente)
Resposta
A diferença mais óbvia é que aptitude
fornece uma interface de menu de terminal (muito parecido com o 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 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, eu acredito que ainda mais recentemente, as duas ferramentas foram atualizadas para compartilhar o mesmo banco de dados de pacotes instalados manualmente ou automaticamente, então casos em que você instala algo com o apt-get e então o aptitude deseja desinstalá-lo são principalmente uma questão de o passado.
Existem algumas pequenas diferenças:
- aptitude irá remover automaticamente os pacotes elegíveis, enquanto apt-get requer um comando separado para fazer isso
- comandos para upgrade vs. dist-upgrade foram renomeados no aptitude para os nomes provavelmente mais precisos upgrade seguro e upgrade completo , respectivamente.
- aptitude realmente executa as funções não apenas do apt-get, mas também algumas de suas ferramentas complementares, como apt-cache e apt-mark.
- aptitude tem uma sintaxe de consulta ligeiramente diferente para pesquisa (em comparação com apt-cache)
- aptitude tem os comandos why e why-not para lhe dizer quais pacotes instalados manualmente estão impedindo uma ação que você pode querer realizar.
- Se as ações (instalação, remoção, atualização de pacotes) que você deseja causar conflitos, o aptitude pode sugerir várias resoluções potenciais. apt-get apenas 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 que eu pode pensar.
Em suma, o aptitude pertence mais apropriadamente à categoria com o Synaptic e outros front-ends de gerenciador de pacotes de nível superior. Acontece que também tem uma interface de linha de comando semelhante ao apt-get.
Rodada de bônus: o que é wajig?
Lembre-se de como mencionei essas ferramentas “complementares” como o apt- cache e apt-mark? Bem, há um monte deles, e se você os usar muito, talvez não se lembre de quais fornecem quais comandos. Wajig é uma solução para esse problema. É essencialmente um despachante, um empacotador em torno de todas essas ferramentas. também 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 executa 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 executa apt-cache search foo
. Se você use wajig em vez de apt-get, apt-mark, apt-cache e outros, então 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 tem --simulate
e --teaching
m odes.
Dois comandos wajig que costumo usar são wajig listfiles foo
e wajig whichpkg /usr/bin/foo
.
Comentários
- Um grande problema que tive com o aptitude é que leva muito tempo para obter conclusões de tabulação em nomes de pacotes (por exemplo,
aptitude install linux-im
guia), embora seja muito rápido para o apt-get. Parece haver algum cache presente na família apt-get que está faltando para aptitude. -
aptitude
também tem o incrívelaptitude search
que você pode usar com muito poderosos padrões de pesquisa . Você temaptitude reinstall
. Você também pode usar a interface ncurses (menu do terminal) para preparar operações de pacote complexas como atualização parcial, remover um pacote, congelar outro, atualizar este, que você pode então executar em um único operação … Ah, e tem um resolvedor de conflitos interativo . - @Totor vaca sagrada, usando aptitude ‘ A interface s ncurses para preparar comandos acabou de me convencer do aptitude de uma vez por todas! (depois de anos pensando que a aptidão vale a pena, mas digitar apt-get a partir da memória muscular)
- … e
aptitude
também temaptitude download package-name
para obter o arquivo .deb do pacote! - É ‘ apenas uma coisa que descobri que não é ‘ t em
aptitude
, mas estão emapt-get
, e isso éapt-get --compile source package-name
.apt-get build-dep package-name
existem, mas acho queaptitude build-dep package-name
faz um trabalho melhor.
Resposta
Muitas vezes me perguntei. Wikipedia destaca que a principal característica distintiva é que o aptitude tem um interface de modo de texto em tela cheia (curses). O fato de você poder usar a maioria dos apt-get
argumentos de comando com aptitude
em si é apenas uma decisão de design para tornar mais fácil para apt-get
usuários mudarem 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 é executado dpkg
) ou um apt
nome de pacote (quando executa apt-get
em vez disso). Você poderia experimentar e ver se é isso que faz?
Claro, a diferença real é:
gaurav@fern:~$ apt-get moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ...."Have you mooed today?"... gaurav@fern:~$ aptitude moo There are no Easter Eggs in this program.
Comentários
- Não!
aptitude
tem mais. Você se esqueceu de colocar os sinalizadores-v
infinitos emmoo
. (Você pode ir até-vvvvvv
) - Não ‘ não se esqueça de todos os importantes poderes da supervaca, que
apt-get
tem, masaptitude
não. (Experimente--help
em ambos) - lmao. essa é uma resposta divertida de ler, embora a resposta de @ryan ‘ seja muito mais elaborada;)
Resposta
aptitude é o programa preferido para gerenciamento de pacotes do console para instalações de pacotes e atualizações de pacotes ou sistemas no Debian.
Aqui está uma visão geral da ferramenta e os recursos que ele tem em relação ao apt-get: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude
Portanto, meu conselho é apenas apt-get install aptitude 🙂
Comentários
- As notas de lançamento diga que apt-get agora é recomendado em vez do aptitude para atualizações para squeeze.
- Sim, mas apenas para isso. Caso contrário, eles são considerados iguais, mas
aptitude
tem muitos recursos mais avançados, como pesquisa e modo de tela inteira, do queapt-get
. - Por alguma razão, usei o aptitude para instalar o emacs e sem olhar removeu o gdm! Por enquanto, estarei usando o apt-get, mas estou muito curioso sobre o aptitude.
Resposta
aptitude
lembra quais pacotes foram solicitados explicitamente e quais foram instalados apenas devido a dependências. Ele desinstalará automaticamente os pacotes que não foram explicitamente solicitados 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.
Comentários
- Isso costumava ser verdade, mas eu sei que meu apt-get tem um comando
apt-get autoremove
para remover pacotes instalados apenas como dependências. Não ‘ não sei quando esse recurso foi adicionado, mas um site sugere que pode ter acontecido com o Debian Lenny (junho de 2010). -
apt-get autoremove
não ‘ t remove pacotes instalados apenas como dependências, remove dependências órfãs, o que é uma diferença sutil ; ele pode ‘ dizer se um pacote ‘ folha ‘ foi instalado com intenção ou como uma dependência para que a deixe, onde o aptitude saberia e a removeria. - Eu ‘ m vendido! Existem outras coisas boas sobre
aptitude
, mas este é um recurso matador.
Resposta
apt-get
, bem como as várias ferramentas complementares, usam significativamente menos memória do que as respectivas invocações de linha de comando de aptitude
e são um pouco mais rápidos. Felizmente, eu não sabia disso até tentar atualizar a instalação do debian em um velho thinkpad pentium com 32 MB de ram. Levaria uma ou duas horas de swap-thrashing para executar apt-get
, que foi concluído com sucesso; aptitude
iria falhar depois de um longo período de tempo.
Essa distinção é mais ou menos irrelevante em qualquer coisa que se pareça com um sistema de desktop moderno.
Resposta
Com base na resposta de @Gaurav, os easter eggs nos dois gerenciadores de pacotes são muito 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.
Resposta
Eles oferecem a mesma funcionalidade básica: instale e remova pacotes da linha de comando.
Aqui “s uma comparação mais detalhada, postada em Site do Ubuntu Stack Exchange : https://askubuntu.com/questions/1743/is-aptitude-really-better-than-apt-get/1749#1749
Comentários
- Eles são muito semelhantes, posso alternar entre eles com facilidade.
Resposta
Conforme mencionado, seja http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitude
tem um muco h interface de linha de comando mais fácil de usar.
Em segundo plano, eles não estão usando o mesmo sistema APT? Sim.
O sistema subjacente não é apenas apt
, mas dpkg
. Este sistema é tão burro quanto RPM, ele só pode lidar com a instalação e administração de pacotes individuais. Ele rastreia quais arquivos instalados pertencem a qual pacote.
apt
controla os downloads de repositórios, rastreia as dependências e assim por diante para todos os pacotes individuais – que então instala usando dpkg
. aptitude
faz o mesmo, com uma interface diferente.
Resposta
Ambos apt -get e aptitude contam com a biblioteca APT, sim.
Veja minha resposta em serverfault.com .
O Debian não é uma entidade monolítica, há pessoas com opiniões diferentes e o mantenedor do aptitude decidiu que o apt-get tinha algumas deficiências e queria construir algo melhor com o aptitude. Ele melhorou a lógica para encontrar soluções para cenários de atualização complexos, adicionou uma GUI para o console, etc. E há mais do que apenas apt-get e aptitude, veja meu artigo apt -get, aptitude,… escolher o gerenciador de pacotes certo para você .
Resposta
Não tenho certeza se isso ainda for válido, mas o desenvolvedor Debian de ponta, Joey Hess, sempre defendeu o aptitude sobre o apt-get. Claro que as coisas podem mudar conforme o software evolui. O Apt-get agora lida com dependências melhor do que antes. De http://lists.debian.org/debian-user/2004/04/msg03138.html
Data: Ter, 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 ser semelhante a apt-get
Se você executar o “aptitude update” ou “aptitude upgrade” ou “aptitude install”, ele se parecerá e funcionará exatamente como o apt-get, com algumas melhorias. Portanto, não há curva de aprendizado.
(Se você for um usuário do dselect, a curva de aprendizado obviamente não é um dos seus problemas.)
-
Trilhos de aptidão 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 controlará quais pacotes são puxados apenas pelas dependências e removerá esses pacotes quando eles não são mais necessários.
-
O aptitude lida bem com as recomendações
Uma falha de longa data do apt-get tem sido a falta de suporte para o relacionamento de Recomendações . O que é um problema porque muitos pacotes no Debian dependem de Recommended para puxar o software que o usuário médio geralmente usa com o pacote. Esta não é uma causa incomum de problemas, embora o apt-get recentemente tenha se tornado capaz de pelo menos mencionar os pacotes recomendados , é fácil perder seus avisos.
O Aptitude suporta Recomendações por padrão e pode ser configurado para suportar Sugestões também. Ele ainda oferece suporte à instalação de pacotes recomendados quando usado no modo de linha de comando.
-
use o aptitude como um usuário normal e evite hospedar seu sistema
Talvez você não ” Não sei que você pode executar o aptitude no modo gui como um usuário normal. Faça as alterações que gostaria de experimentar. Se você entrar em uma confusão real, você pode 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.) Visto que está sendo executado como um usuário normal, você não pode controlar seu sistema até que diga ao aptitude para fazer algo, momento em que ele solicitará sua senha root. / p>
-
aptitude tem uma interface de usuário poderosa e recursos de pesquisa
Entre o navegador categórico do aptitude e seu excelente suporte para filtragem no estilo mutt e pesquisa de pacotes por nome, descrição, mantenedor, dependências, etc, você deve ser capaz de encontrar pacotes mais rápido do que nunca usando o aptitude.
-
O aptitude torna fácil manter o controle de software obsoleto
Se o Debian parar de distribuir um pacote, o apt irá deixá-lo em seu sistema indefinidamente, sem avisos e sem atualizações. O Aptitude lista esses pacotes em sua seção “Pacotes Obsoletos e Criados Localmente”, para que você possa ser informado sobre o problema e fazer algo a respeito.
-
O aptitude tem uma interface para o Debian sistema de tarefas
O Aptitude permite que você use o sistema de tarefas do Debian como ele foi projetado para ser usado. Você pode navegar pelas tarefas disponíveis, selecionar uma tarefa para instalar e então aprofundar-se nela e desmarcar partes de a tarefa que você não quer. apt-get não tem suporte para tarefas, e aptitude é melhor até do que ferramentas de propósito especial como o tasksel.
-
O aptitude suporta múltiplas fontes
Se suas fontes. list está configurada para disponibilizar várias versões de um pacote, o aptitude permite que você analise as versões disponíveis e escolha uma versão não padrão para instalar. Se um pacote quebrar na instável, apenas reverta-o para a versão em teste.
-
O aptitude registra suas ações
O Aptitude registra o pacote que ele instala, atualiza, e remove para / varlog / aptitude, que pode ser útil para descobrir por que as coisas começaram a quebrar após a atualização de ontem, ou quando você removeu um pacote particular.
– veja o tímido jo
=================== Há também uma discussão mais recente de 2010 aqui https://superuser.com/questions/93437/aptitude-vs-apt-get-which-is-the-recommended-aka-the-right-tool-to-use no StackExchange.