Eu sei que tanto apt-get
e aptitude
são interfaces de gerenciamento de pacotes linha de comando no Debian derivado Linux, com diferentes opções, 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 ?)
debian
package-management
apt
aptitude
Kevin Cantu
fonte
fonte
Respostas:
A diferença mais óbvia é que
aptitude
fornece uma interface de menu de terminal (semelhante ao Synaptic em um terminal), enquantoapt-get
não fornece.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, os 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.
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 você diz
wajig install foo
, wajig diz "Ok,install
é fornecido porapt-get
e requer privilégios de administrador" e é executadosudo apt-get install foo
. Quando você dizwajig search foo
, wajig diz "Ok,search
é fornecidoapt-cache
e não requer privilégios de administrador" e é executadoapt-cache search foo
. Se você usa wajig em vez de apt-get, apt-mark, apt-cache e outros, nunca terá esse problema: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
ewajig whichpkg /usr/bin/foo
.fonte
aptitude install linux-im
guia), enquanto é muito rápido para o apt-get. Parece haver algum cache presente na família apt-get que não possui aptidão.aptitude
também tem o incrívelaptitude search
que você pode usar com padrões de pesquisa muito poderosos . Você temaptitude reinstall
. Você também pode usar a interface ncurses (menu do terminal) para preparar operações complexas de pacotes, como atualização parcial, remover um pacote, congelar outro, atualizar este, que você poderá executar em uma única operação ... Ah, e ele tem um resolução de conflitos interativa .aptitude
também precisaaptitude download package-name
obter o arquivo .deb do pacote!aptitude
mas estáapt-get
, e é issoapt-get --compile source package-name
.apt-get build-dep package-name
existem, mas acho queaptitude build-dep package-name
fazem um trabalho melhor.Eu sempre me perguntei. A Wikipedia destaca que a principal característica distintiva é que o aptitude possui uma interface em modo de texto (maldições) em tela cheia. O fato de você poder usar a maioria dos
apt-get
argumentos de comandoaptitude
é apenas uma decisão de design para facilitarapt-get
a passagem dos usuáriosaptitude
e vice-versa.Eu nunca usei
wajig
, mas a documentação sugere que é apenas um script que sabe se você está passando umdeb
arquivo (quando é executadodpkg
) ou umapt
nome de pacote (quando é executadoapt-get
). Você poderia experimentar e ver se é isso que faz?Obviamente, a verdadeira diferença é:
fonte
aptitude
tem mais. Você esqueceu de colocar as-v
bandeiras sem fimmoo
. (Você pode ir até-vvvvvv
)apt-get
têm, masaptitude
não o fazem. (Tente--help
em ambos)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 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 :)
fonte
aptitude
possuem muitos recursos mais avançados, como pesquisa e modo de tela cheiaapt-get
.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 solicitados explicitamente quando não forem mais necessários.apt-get
trata os pacotes solicitados explicitamente e suas dependências da mesma forma.Para uma melhor utilização
aptitude
, isso ajuda a manter seu sistema limpo.fonte
apt-get autoremove
comando para remover pacotes instalados apenas como dependências. Não sei quando esse recurso foi adicionado, mas um site sugere que isso pode ter acontecido com o Debian Lenny (junho de 2010).apt-get autoremove
não remove pacotes instalados apenas como dependências, remove dependências órfãs, o que é uma diferença sutil; ele não pode dizer se um pacote 'leaf' foi instalado com intenção ou como uma dependência, então deixa, onde o aptitude o conheceria e o removeria.aptitude
mas esse é um recurso matador.apt-get
, assim como as várias ferramentas complementares, usam significativamente menos memória do que as respectivas chamadas de linha de comandoaptitude
e são um pouco mais rápidas. Fiquei 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 e trocaapt-get
, que foi concluída com êxito;aptitude
falharia depois que eu acho que por um longo período de tempo.Essa distinção é mais ou menos irrelevante em qualquer coisa semelhante a um sistema de desktop moderno.
fonte
Com base na resposta de @ Gaurav, os ovos de páscoa nos dois gerenciadores de pacotes são bem engraçados !:
e assim por diante.
fonte
Eles oferecem a mesma funcionalidade básica: instalar e remover pacotes da linha de comando.
Aqui está uma comparação mais detalhada, publicada no site Ubuntu Stack Exchange : https://askubuntu.com/questions/1743/is-aptitude-really-better-than-apt-get/1749#1749
fonte
Como mencionado , http://pthree.org/2007/08/12/aptitude-vs-apt-get/ ,
aptitude
possui uma interface de linha de comando muito mais fácil de usar.O sistema subjacente não é apenas
apt
, masdpkg
. 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 ele instala usandodpkg
.aptitude
faz o mesmo, com uma interface diferente.fonte
Tanto o apt-get quanto o aptitude dependem da biblioteca do APT, sim.
Veja minha 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 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, ... escolha o gerenciador de pacotes certo para você .
fonte
Eu não tenho certeza se isso ainda é válido, mas o desenvolvedor do Debian, Joey Hess, sempre foi um defensor do apt-get. É claro que as coisas mudam à medida que o software evolui. O Apt-get agora lida com dependências melhor do que costumava. De 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á como o apt-get, com algumas melhorias. Portanto, não há curva de aprendizado.
(Se você é um usuário 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, embora 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, pode pressionar 'q' e sair, suas alterações não serão salvas. (O Aptitude também permite que você use o 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, ele solicitará sua senha 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 ainda do que ferramentas para fins especiais, como 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-get-which- é a ferramenta recomendada para uso correto no StackExchange.
fonte