Risposte:
apt-get e aptitude sono diverse interfacce utente che fanno parte dello stesso sistema di gestione dei pacchetti, APT, Advanced Packaging Tool . Ad esempio, entrambi sono configurati utilizzando /etc/apt/apt.conf
, entrambi utilizzano lo stesso spazio file e formati per rappresentare lo stato del pacchetto e lo stesso spazio file per archiviare .debs scaricati.
La differenza è il loro sistema di regole interne per rappresentare potenziali conflitti tra i pacchetti, come risolverli (diciamo durante apt-get dist-upgrade
vs. aptitude full-upgrade
) e come esprimerli quando interagiscono con l'utente. In generale, entrambi potrebbero fare la cosa sbagliata in situazioni difficili, ma apt-get ha molte più probabilità di sbagliare che l'attitudine.
Molti buoni consigli sono già qui, ma vorrei aggiungere una cosa che nessuno ha menzionato. Se decidi di cambiare, potresti voler eseguire questo comando, a seconda di cosa hai combinato apt-get
:
aptitude keep-all
Tale comando ripristina aptitude
il senso di quali pacchetti sono orfani e dovrebbero essere rimossi.
Ecco il motivo per cui a volte è utile: per un po 'di tempo, entrambi apt-get
e aptitude
seguiranno i pacchetti installati automaticamente come dipendenza da qualcos'altro. Quindi, ad esempio, se si installa mpd
, si potrebbe ottenere lib-so-and-so
come dipendenza. Lo fanno, in modo che se rimuovi in seguito mpd
, lib-so-and-so
viene rimosso anche. Ma aptitude
e apt-get
gestire questo su pulito in modo diverso. aptitude
cerca immediatamente di rimuovere tutte le dipendenze orfane; ma apt-get
suggerisce semplicemente che corri apt-get autoremove
per pulire. (La logica dietro tutto questo è che hai solo la libreria da quando mpd
ne hai avuto bisogno. Se non la mantieni mpd
, non dovresti più avere bisogno della libreria. Se un altro pacchetto dipende ancora da essa, allora entrambi aptitude
eapt-get
lo saprà e non tenterà di rimuovere la libreria.)
Qual è il mio punto? Bene, se stai vedendo scostarsi costantemente apt-get autoremove
e passi a aptitude
, allora potresti essere scioccato la prima volta che provi a installare qualcosa. aptitude
proverò subito a rimuovere tutti quegli orfani. In generale, questo andrà bene (dopotutto sono orfani e non necessari), ma c'è un caso complicante. I meta-pacchetti desktop implicano tutti una complessa catena di dipendenze in cui ogni singolo programma viene inserito come dipendenza di un wrapper di pacchetto virtuale. Ad esempio, se hai installato Gnome perché hai installato il gnome
pacchetto, tutti i tuoi normali programmi desktop sono stati installati come dipendenze. Se hai disinstallato uno di questi programmi (ad esempio Ekiga o Gedit), allora agli occhi diaptitude
anche il resto del desktop dovrebbe essere rimosso. Nota che chiede aptitude
sempre prima di rimuovere le cose, ma le persone spesso inseriscono "Y" senza leggere. Nella mia esperienza, questa è l'unica lamentela / confusione più comune per le persone che non conoscono Debian.
Due consigli generali:
aptitude
o apt-get
attentamente, prima di dire di sì a qualsiasi cosa.aptitude -s safe-upgrade
o aptitude -s install foo
. La -s|--simulate
bandiera è tua amica.È stato detto sulla mailing list di Debian, anni fa, che passare da apt-get a aptitude era rischioso. Sono due versioni di Debian (diciamo 10 anni) fa. Tutti questi problemi sembrano risolti ora, e certamente non ho visto problemi su Debian o Ubuntu.
apt-get
a aptitude
. All'epoca gestivano molte funzioni essenziali in modo molto diverso. Con il passare del tempo, sono diventati molto più simili e aptitude
sono maturati molto. Per il 90% dei casi ora, non ci dovrebbero essere problemi se si cambia. Vedi il mio post per un caso limite.
Direi anche di andare avanti e usare aptitude
.
Aptitude
ha una migliore gestione delle dipendenze rispetto a apt-get
. Ciò contribuirà a mantenere basso il numero di pacchetti orfani.
Ho letto qualche tempo fa che aptitude
ha l'algoritmo di aggiornamento dist migliore rispetto a apt-get
. Ma questa non è una caratteristica killer in quanto non viene utilizzata così spesso nella vita di un sistema.
Inoltre avrai più cose unite in un unico strumento. Piuttosto che ricordare quando chiamare apt-get
, apt-cache
e dpkg
e con quali interruttori uso solo attitudine e faccio quasi tutto.
Per quanto riguarda le complicazioni quando si passa "nel mezzo": non ricordo di averne avuto una quando l'ho fatto.
Non sono solo un'interfaccia diversa per lo stesso backend?
aptitude
è un'interfaccia più caratteristica ...
dpkg
. ma dpkg
installa solo i pacchetti; sono i front-end che si occupano di ricerca, risoluzione delle dipendenze e download.
Dalla mia esperienza, hanno un modo diverso di bloccare le versioni dei pacchetti. Nel mio caso, ho detto a aptitude di bloccare determinati pacchetti, supponendo che sarei stato al sicuro da futuri aggiornamenti. Mi sbagliavo; il gestore degli aggiornamenti cron-programmato, che utilizza apt-get, procede ad aggiornarlo con mio sgomento.
Drats, mentre stavo scrivendo questo, ho cercato su Google e ho scoperto che il bug ( # 557580 aptitude non obbediva ai pin nelle preferenze.d / *) era già corretto!
Uso sia apt-get che aptitude senza alcun problema: ho la stessa domanda ... Perché la gente dice questo ??? : D
Continua e non preoccuparti: aptitude è solo una gui di testo per apt-get, che potresti persino usare come applicazione da riga di comando, ad esempio apt-get install foo
è la stessa diaptitude install foo
.
Saluti
apt-get
offrono anche la rimozione automatica dei pacchetti installati solo come dipendenze. La differenza rimanente a tale proposito è che aptitude
rimuove istantaneamente le dipendenze (come appropriato), ma apt-get
ti spinge solo a eseguire il comando apt-get autoremove
. Ma entrambi tengono traccia delle dipendenze allo stesso modo ora. Differiscono comunque, nella gestione di dipendenze complesse e casi limite (installazioni o rimozioni molto complicate), ma per la maggior parte delle persone e la maggior parte delle situazioni, ora funzionano allo stesso modo.
aptitude
li rimuoverà immediatamente, maapt-get
ti chiederà di rimuoverli solo inserendo il comandoapt-get autoremove
. In generale, vorranno rimuovere gli stessi elementi. Vedi questo link, tuttavia, per un caso complesso in cui non erano d'accordo su questo: forums.debian.net/viewtopic.php?f=10&t=49589&start=0