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

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ível aptitude search que você pode usar com muito poderosos padrões de pesquisa . Você tem aptitude 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 tem aptitude download package-name para obter o arquivo .deb do pacote!
  • É ‘ apenas uma coisa que descobri que não é ‘ t em aptitude, mas estão em apt-get, e isso é apt-get --compile source package-name . apt-get build-dep package-name existem, mas acho que aptitude 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 em moo. (Você pode ir até -vvvvvv)
  • Não ‘ não se esqueça de todos os importantes poderes da supervaca, que apt-get tem, mas aptitude 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 que apt-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.

  1. 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.)

  2. 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.

  3. 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.

  4. 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>

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *