Isso pode causar problemas para mudar do apt-get para o aptitude?

8

Eu estava pensando em mudar para o aptitude, mas ouvi pessoas dizerem "se você já estiver usando o apt-get, você deve esperar até a próxima instalação para mudar". Por que as pessoas dizem isso? Que tipo de problemas (se houver) isso pode causar?

Mateus
fonte

Respostas:

8

apt-get e aptitude são UIs diferentes que fazem parte do mesmo sistema de gerenciamento de pacotes, o APT, a Advanced Packaging Tool . Por exemplo, ambos são configurados usando /etc/apt/apt.conf, ambos usam o mesmo espaço no arquivo e formatos para representar o estado do pacote e o mesmo espaço no arquivo para armazenar .debs baixados.

Como eles diferem é o sistema de regras interno para representar possíveis conflitos entre pacotes, como resolvê-los (digamos durante apt-get dist-upgradevs. aptitude full-upgrade) e como expressá-los ao interagir com o usuário. De um modo geral, ambos podem fazer a coisa errada em situações difíceis, mas o apt-get tem muito mais probabilidade de errar do que o aptitude.

Charles Stewart
fonte
2
Uma resposta ótima e clara. Um detalhe adicional é como / quando eles removem dependências instaladas automaticamente. aptitudeirá removê-los imediatamente, mas apt-getsó irá pedir-lhe para removê-los, digitando o comando apt-get autoremove. Em geral, eles desejam remover os mesmos itens. Veja este link, no entanto, para um caso complexo em que eles discordaram disso: forums.debian.net/viewtopic.php?f=10&t=49589&start=0
Telêmaco
5

Muitos bons conselhos já estão aqui, mas deixe-me acrescentar uma coisa que ninguém mencionou. Se você decidir mudar, convém executar este comando, dependendo do que estiver fazendo apt-get:

aptitude keep-all

Esse comando redefine aptitudeo senso de quais pacotes são órfãos e devem ser removidos.

Aqui está a razão às vezes é útil: por algum tempo agora, tanto apt-gete aptitudevai rastrear pacotes que foram instalados automaticamente como uma dependência de outra coisa. Portanto, por exemplo, se você instalar mpd, poderá ter lib-so-and-souma dependência. Eles fazem isso, para que, se você remover mais tarde mpd, também lib-so-and-soseja removido. Mas aptitudee apt-getlide com isso de maneira diferente. aptitudeimediatamente tenta remover todas as dependências órfãs; mas apt-getapenas sugere que você corra apt-get autoremovepara limpar. (A lógica por trás de tudo isso é que você só tem a biblioteca desde mpdprecisava. Se você não se mantiver mpd, você não deve precisar a biblioteca por mais tempo. Se outro pacote ainda depende dele, então ambos aptitudeeapt-get saberá disso e não tentará remover a biblioteca.)

Qual é o meu ponto? Bem, se você estiver vendo constantes cutucadas para executar apt-get autoremovee mudar aptitude, poderá ficar em choque na primeira vez que tentar instalar algo. aptitudeimediatamente tentará remover todos esses órfãos. Em geral, tudo ficará bem (afinal, eles são órfãos e não são necessários), mas há um caso complicador. Os meta-pacotes da área de trabalho envolvem uma cadeia de dependência complexa na qual cada programa individual é extraído como uma dependência de um wrapper de pacote virtual. Por exemplo, se você possui o Gnome instalado porque instalou o gnomepacote, todos os seus programas normais da área de trabalho foram instalados como dependências. Se você desinstalou um único desses programas (por exemplo, Ekiga ou Gedit), então aos olhos deaptitudeo restante da área de trabalho também deve ser removido. Observe que aptitude sempre pergunta antes de remover as coisas, mas as pessoas geralmente inserem 'Y' sem ler. Na minha experiência, esta é a reclamação / confusão mais comum para pessoas novas no Debian.

Dois conselhos gerais:

  1. Sempre leia a saída aptitudeou apt-getcuidadosamente, antes de dizer sim a qualquer coisa.
  2. Lembre-se de que você sempre pode executar um teste a seco usando aptitude -s safe-upgradeou aptitude -s install foo. A -s|--simulatebandeira é sua amiga.
Telêmaco
fonte
4

Foi dito na lista de discussão Debian, anos atrás, que mudar de apt-get para aptitude era arriscado. Esta é duas versões do Debian (digamos 10 anos) atrás. Todos esses problemas parecem estar resolvidos agora, e certamente não vi problemas no Debian ou no Ubuntu.

CarlF
fonte
1
Você tem um link para a postagem na lista de discussão?
Matthew
Matthew, você imagina que eu mantenho um arquivo perfeitamente indexado de toda a lista de discussão debian-user aqui? Quando fica claro acima, que eu nem me lembro do ano?
CarlF
@ Matthew: um tempo atrás (Sarge ou Etch cedo), havia muitas pessoas preocupadas em mudar de apt-getpara aptitude. Naquela época, eles lidavam com muitas funções essenciais de maneira muito diferente. Com o tempo, eles se tornaram muito mais parecidos e aptitudeamadureceram uma tonelada. Para 90% dos casos agora, não deve haver problemas se você alternar. Veja o meu post para um caso de borda.
Telêmaco
2

Eu também diria que vá em frente e use aptitude.
Aptitudetem um gerenciamento de dependência melhor que apt-get. Isso ajudará a manter baixa a contagem de pacotes órfãos.
Eu li há um tempo atrás que aptitudetem o melhor algoritmo dist upgrade comparado ao apt-get. Mas isso dificilmente é um recurso matador, pois não é usado com frequência na vida útil de um sistema.

Além disso, você terá mais coisas unidas em uma ferramenta. Ao invés de se lembrar quando a chamada apt-get, apt-cacheou dpkge com o qual muda Eu simplesmente usar o aptitude e obter a maioria das coisas.

Quanto às complicações ao mudar "no meio": não me lembro de ter tido nenhuma quando o fiz.

fora
fonte
1

Eles não são apenas uma interface diferente para o mesmo back-end?

Svish
fonte
2
aptitudeé uma interface mais característica ...
quack quixote
Isso pode ser. Mas uma interface com mais recursos não significa necessariamente um back-end diferente.
Svish
2
não, você está certo, ambos são front-ends para dpkg. mas dpkgapenas instala os pacotes; são os front-ends responsáveis ​​pela pesquisa, resolução de dependências e download.
quack quixote
mas a pesquisa, o download e a resolução de dependências não quebram nada. ou se ele faz isso seria muito estranho na minha opinião ...
Svish
2
apenas notei seu último comentário. lembre-se de que são os front-ends que decidem o que instalar; O dpkg apenas faz a instalação. se algo quebra, geralmente é porque a resolução da dependência falhou ou porque o usuário desativou a resolução da dependência (por exemplo, com uma opção --force ).
quack quixote
1

Pela minha experiência, eles têm uma maneira diferente de fixar versões de pacotes. No meu caso, eu disse ao aptitude para bloquear certos pacotes, assumindo que estaria a salvo de futuras atualizações. Eu estava errado; o gerenciador de atualizações agendado com cron, que usa o apt-get, prossegue para atualizá-lo para minha consternação.

Drats, enquanto escrevia isso, pesquisei no Google e descobri que o bug (o número 557580 do aptitude não obedece a pinos nas preferências.d / *) já estava corrigido!

syockit
fonte
-1

Eu uso o apt-get e o aptitude sem nenhum problema: tenho a mesma pergunta ... Por que as pessoas dizem isso ??? : D

Continue e não se preocupe: o aptitude é apenas um gui de texto para o apt-get, que você pode usar como aplicativo de linha de comando, por exemplo, apt-get install fooé o mesmo que aptitude install foo.

Saudações

dag729
fonte
Não acredito que sejam iguais. A menos que as coisas mudem, o aptitude fará mais rastreamento de dependência e removerá todos os pacotes que foram instalados automaticamente, enquanto o apt-get não. Ou seja, se foo depende da barra e você instala e remove foo com o apt-get, a barra permanecerá no seu sistema. Se você fizer o mesmo com o aptitude, não o fará.
William Pursell
Você está certo: veja os comentários do ~ charlatão abaixo.
dag729
@ William, @ dag729: As versões atuais apt-gettambém oferecem a remoção automática de pacotes instalados apenas como dependências. A diferença restante nesse aspecto é que aptituderemove instantaneamente as dependências (conforme apropriado), mas apt-getapenas o estimula a executar o comando apt-get autoremove. Mas os dois rastreiam dependências da mesma maneira agora. Eles ainda diferem, no entanto, ao lidar com dependências complexas e casos extremos (instalações ou remoções muito complicadas), mas para a maioria das pessoas e a maioria das situações, elas funcionam da mesma maneira agora.
Telêmaco