Lo so che sia apt-get
e aptitude
sono interfacce di gestione dei pacchetti a riga di comando su Linux derivato da Debian, con diverse opzioni, ma sono ancora un po confuso. Sotto il cofano, non stanno usando lo stesso sistema APT?
Perché Debian mantiene questi strumenti paralleli? (Domanda bonus: cosa diavolo è wajig ?)
Commenti
- So che non è la risposta corretta per la tua domanda, ma perché non puoi provare Synaptic? è molto facile da usare e scarica e installa automaticamente le dipendenze. Gnome non è presente sul tuo sistema?
- ‘ sono di parte, ma penso che questa domanda su il sito Ubuntu SE potrebbe essere pertinente.
- duplicate: unix.stackexchange.com/questions/244/apt-get-or-aptitude .
- @Wim a causa della parte wajig di questa domanda ho deciso di fondere 244 in questa domanda invece del contrario
- Vale la pena notare che aptitude è in programma per la rimozione dallinstallazione predefinita sulla prossima versione di Ubuntu (anche se puoi sempre installarlo usando apt-get in seguito)
Risposta
La differenza più evidente è che aptitude
fornisce uninterfaccia del menu del terminale (molto simile a Synaptic in un terminale), mentre apt-get
no.
Considerando solo le interfacce della riga di comando di ciascuna, sono abbastanza simili e, per la maggior parte, non importa quale si usa. Le versioni recenti di entrambi monitoreranno quali pacchetti sono stati installati manualmente e quali sono stati installati come dipendenze (e quindi idonei per la rimozione automatica). In effetti, credo che anche più recentemente i due strumenti siano stati aggiornati per condividere effettivamente lo stesso database di pacchetti installati manualmente rispetto a quelli installati automaticamente, quindi i casi in cui si installa qualcosa con apt-get e poi aptitude vuole disinstallarlo sono per lo più una cosa di il passato.
Ci sono alcune piccole differenze:
- aptitude rimuoverà automaticamente i pacchetti idonei, mentre apt-get richiede un comando separato per farlo
- i comandi per upgrade e dist-upgrade sono stati rinominati in aptitude con i nomi probabilmente più accurati safe-upgrade e full-upgrade , rispettivamente.
- aptitude esegue effettivamente le funzioni non solo di apt-get, ma anche di alcuni dei suoi strumenti complementari, come apt-cache e apt-mark.
- aptitude ha una sintassi delle query leggermente diversa per la ricerca (rispetto ad apt-cache)
- aptitude ha i comandi why e why-not da dirti quali pacchetti installati manualmente impediscono unazione che potresti voler intraprendere.
- Se le azioni (installazione, rimozione, aggiornamento dei pacchetti) che desideri intraprendere causano conflitti, aptitude può suggerire diverse potenziali risoluzioni. apt-get dirà semplicemente “Mi dispiace Dave, non posso” permetterti di farlo. “
Ci sono altre piccole differenze, ma quelle sono le più importanti che io può pensare.
In breve, aptitude appartiene più propriamente alla categoria con Synaptic e altri frontend di gestori di pacchetti di livello superiore. Capita semplicemente di avere anche uninterfaccia a riga di comando che assomiglia ad apt-get.
Bonus round: cosè wajig?
Ricorda come ho menzionato quegli strumenti “complementari” come apt- cache e apt-mark? Bene, ce ne sono un sacco, e se li usi molto, potresti non ricordare quali forniscono quali comandi. Wajig è una soluzione a questo problema. È essenzialmente un dispatcher, un wrapper attorno a tutti questi strumenti. applica anche sudo quando necessario. Quando dici wajig install foo
, wajig dice “Ok, install
è fornito da apt-get
e richiede privilegi di amministratore “e viene eseguito sudo apt-get install foo
. Quando dici wajig search foo
, wajig dice” Ok, search
è fornito da apt-cache
e non richiede privilegi di amministratore “e viene eseguito apt-cache search foo
. Se tu usa wajig invece di apt-get, apt-mark, apt-cache e altri, allora “non avrai mai questo problema:
$ apt-get search foo E: Invalid operation search
Se vuoi sapere cosa sta facendo Wajig dietro le quinte, quali strumenti sta utilizzando per implementare un particolare comando, ha --simulate
e --teaching
m odi.
Due comandi wajig che uso spesso sono wajig listfiles foo
e wajig whichpkg /usr/bin/foo
.
Commenti
- Un grosso problema che ho avuto con aptitude è che ci vuole molto tempo per ottenere i completamenti di tabulazione sui nomi dei pacchetti (ad esempio,
aptitude install linux-im
tab), mentre è molto veloce per apt-get. Sembra che nella famiglia apt-get sia presente un caching che manca di aptitude. -
aptitude
hanno anche il fantasticoaptitude search
che puoi utilizzare con pattern di ricerca molto potenti . Haiaptitude reinstall
. Puoi anche usare linterfaccia ncurses (menu del terminale) per preparare operazioni complesse sui pacchetti come laggiornamento parziale, rimuovere un pacchetto, congelarne un altro, aggiornare questo, che puoi quindi eseguire in un unico operazione … Oh, e ha un risolutore di conflitti interattivo . - @Totor holy cow, using aptitude ‘ Linterfaccia di ncurses per preparare i comandi mi ha appena venduto aptitude una volta per tutte! (dopo anni passati a pensare che valga la pena fare aptitude, ma digitando apt-get dalla memoria muscolare)
- … e
aptitude
ha ancheaptitude download package-name
per ottenere il file .deb del pacchetto! - ‘ è solo una cosa che ho scoperto che non è ‘ t in
aptitude
ma sono inapt-get
, e cioèapt-get --compile source package-name
.apt-get build-dep package-name
esiste ma penso cheaptitude build-dep package-name
faccia un lavoro migliore.
Risposta
Mi sono “spesso chiesto a me stesso. Wikipedia evidenzia che la principale caratteristica distintiva è che aptitude ha un interfaccia in modalità testo a schermo intero (curses). Il fatto che tu possa utilizzare la maggior parte degli argomenti del comando apt-get
con aptitude
è solo una decisione progettuale per rendere più facile per gli utenti apt-get
passare a aptitude
e viceversa.
Non ho mai usato wajig
, ma la documentazione suggerisce che “è solo uno script che sa se gli stai passando un file deb
(quando viene eseguito dpkg
) o un apt
nome del pacchetto (quando viene eseguito apt-get
al suo posto). Potresti provarlo e vedere se è quello che fa?
Ovviamente, la reale differenza è:
gaurav@fern:~$ apt-get moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ...."Have you mooed today?"... gaurav@fern:~$ aptitude moo There are no Easter Eggs in this program.
Commenti
- No!
aptitude
ne ha di più. Hai dimenticato di inserire gli infiniti-v
flag inmoo
. (Puoi andare fino a-vvvvvv
) - Non ‘ per dimenticare gli importantissimi Super Cow Powers, che
apt-get
ha maaptitude
no. (Prova--help
su entrambi) - lmao. questa è una risposta divertente da leggere, anche se la risposta di @ryan ‘ è molto più elaborata;)
Risposta
aptitude è il programma preferito per la gestione dei pacchetti da console sia per le installazioni di pacchetti che per gli aggiornamenti di pacchetti o di sistema in Debian.
Ecco una panoramica dello strumento e le caratteristiche che ha su apt-get: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude
Quindi, il mio consiglio è di basta apt-get install aptitude 🙂
Commenti
- Le note di rilascio diciamo che apt-get ora è consigliato rispetto ad aptitude per gli aggiornamenti da squeeze.
- Sì, ma solo per quello. Altrimenti sono considerati uguali ma
aptitude
ha molte funzioni più avanzate, come la ricerca e la modalità a schermo intero, rispetto aapt-get
. - Per qualche ragione ha usato aptitude per installare emacs e senza guardarlo ha rimosso gdm! Quindi per ora userò apt-get ma sono molto curioso di aptitude.
Answer
aptitude
ricorda quali pacchetti sono stati esplicitamente richiesti e quali sono stati installati solo a causa delle dipendenze. Disinstalla automaticamente i pacchetti che non sono stati richiesti esplicitamente quando non sono più necessari.
apt-get
tratta i pacchetti richiesti esplicitamente e le loro dipendenze allo stesso modo.
Quindi è meglio usare aptitude
, questo aiuta a mantenere pulito il tuo sistema.
Commenti
- Questo era vero, ma so che il mio apt-get ha un comando
apt-get autoremove
per rimuovere i pacchetti installati solo come dipendenze. Non ‘ non so quando questa funzionalità è stata aggiunta, ma un sito web suggerisce che potrebbe essere successo con Debian Lenny (giugno 2010). -
apt-get autoremove
non ‘ t rimuove i pacchetti installati solo come dipendenze, rimuove le dipendenze orfane, il che è una sottile differenza ; può ‘ t dire se un pacchetto ‘ leaf ‘ è stato installato con intento o come una dipendenza così la lascia, dove aptitude la conoscerebbe e la rimuoverà. - Sono ‘ venduto! Ci sono altre cose interessanti su
aptitude
ma questa è senza dubbio una funzione killer.
Risposta
apt-get
, così come i vari strumenti complementari, utilizzano una memoria notevolmente inferiore rispetto alle rispettive chiamate da riga di comando di aptitude
e sono un po più veloci. Ero beatamente inconsapevole di questo fino a quando non ho provato ad aggiornare linstallazione Debian su un vecchio thinkpad pentium avvizzito con 32 MB di RAM. Occorrono una o due ore di swap-thrash per eseguire apt-get
, che è stato completato con successo; aptitude
fallirebbe dopo, credo, un periodo di tempo più lungo.
Questa distinzione è più o meno irrilevante per qualsiasi cosa che assomigli a un moderno sistema desktop.
Risposta
Basandosi sulla risposta di @Gaurav, le uova di Pasqua nei due gestori di pacchetti sono piuttosto divertenti !:
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 così via.
Answer
Offrono le stesse funzionalità di base: installa e rimuovi i pacchetti dalla riga di comando.
Ecco un confronto più dettagliato, pubblicato su Sito web di Ubuntu Stack Exchange : https://askubuntu.com/questions/1743/is-aptitude-really-better-than-apt-get/1749#1749
Commenti
- Sono abbastanza simili, posso passare da uno allaltro abbastanza facilmente.
Risposta
Come accennato, essere http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitude
ha un muc È più facile da usare linterfaccia della riga di comando.
Dietro le quinte, non usano lo stesso sistema APT? Sì.
Il sistema sottostante non è solo apt
, ma dpkg
. Questo sistema è stupido quanto RPM, può gestire solo linstallazione e lamministrazione di singoli pacchetti. Tiene traccia dei file installati che appartengono a quale pacchetto.
apt
gestisce i download dei repository, il monitoraggio delle dipendenze e così via per tutti i singoli pacchetti, che poi si installa utilizzando dpkg
. aptitude
fa lo stesso, con uninterfaccia diversa.
Answer
Entrambi apt -get e aptitude fanno affidamento sulla libreria APT, sì.
Vedi la mia risposta su serverfault.com .
Debian non è unentità monolitica, ci sono persone con opinioni diverse e il manutentore di aptitude ha deciso che apt-get aveva alcuni difetti e voleva costruire qualcosa di meglio con aptitude. Ha migliorato la logica per trovare soluzioni per scenari di aggiornamento complessi, ha aggiunto una GUI per la console, ecc. E non ci sono solo apt-get e aptitude, vedi il mio articolo apt -get, aptitude, … scegli il gestore di pacchetti giusto per te .
Answer
Non sono sicuro se questo vale ancora, lo sviluppatore Debian allavanguardia Joey Hess era sempre solito sostenere aptitude su apt-get. Ovviamente le cose cambiano con levoluzione del software. Apt-get ora gestisce le dipendenze meglio di prima. Da http://lists.debian.org/debian-user/2004/04/msg03138.html
Data: Mar, 20 aprile 2004 22:27:12 -0400 Da: Joey Hess
Nove motivi per cui dovresti usare aptitude invece di apt-get o dselect.
-
aptitude può sembrare proprio apt-get
Se esegui “aptitude update” o “aptitude upgrade” o “aptitude install”, sembra e funziona proprio come apt-get, con alcuni miglioramenti. Quindi non cè curva di apprendimento.
(Se sei un utente dselect, la curva di apprendimento ovviamente non è uno dei tuoi problemi.)
-
aptitude tracks pacchetti installati automaticamente
Smettila di preoccuparti di eliminare le librerie inutilizzate e i pacchetti di supporto dal tuo sistema. Se usi aptitude per installare tutto, terrà traccia di quali pacchetti vengono estratti dalle sole dipendenze e rimuoverli quando non sono più necessari.
-
aptitude gestisce bene le raccomandazioni
Un fallimento di lunga data di apt-get è stata la sua mancanza di supporto per la relazione Raccomanda .Questo è un problema perché molti pacchetti in Debian si affidano a Raccomandazioni per inserire software che lutente medio usa generalmente con il pacchetto.Questa è una causa di problemi non rara, anche se apt-get recentemente è diventato in grado di menzionare almeno i pacchetti raccomandati , è facile perdere i suoi avvisi.
Aptitude supporta le raccomandazioni per impostazione predefinita e può essere configurato per supportare anche i suggerimenti. Supporta anche linstallazione dei pacchetti consigliati quando viene utilizzato in modalità riga di comando.
-
usa aptitude come un utente normale ed evita di chiudere il tuo sistema
Forse non lhai fatto ” Non so che puoi eseguire aptitude in modalità gui come un utente normale. Apporta le modifiche che desideri provare. Se ti trovi in un vero casino, puoi premere “q” ed uscire, le tue modifiche non verranno salvate. (Aptitude ti consente anche di usare ctrl-u per annullare le modifiche.) Dato che è in esecuzione come un utente normale, non puoi collegare il sistema finché non dici ad aptitude di fare qualcosa, a quel punto ti chiederà la password di root.
-
aptitude ha una potente interfaccia utente e capacità di ricerca
Tra il browser categoriale di aptitude e il suo grande supporto per il filtraggio in stile mutt e la ricerca di pacchetti per nome, descrizione, manutentore, dipendenze, ecc. dovresti essere in grado di trovare i pacchetti più velocemente che mai usando aptitude.
-
aptitude rende facile tenere traccia del software obsoleto
Se Debian interrompe la distribuzione di un pacchetto, apt lo lascerà sul sistema a tempo indefinito, senza avvertimenti e senza aggiornamenti. Aptitude elenca tali pacchetti nella sezione “Pacchetti obsoleti e creati localmente”, in modo che tu possa essere informato del problema e fare qualcosa al riguardo.
-
aptitude ha uninterfaccia per Debian sistema dei compiti
Aptitude ti permette di usare il sistema dei compiti di Debian così come è stato progettato per essere usato. Puoi sfogliare le attività disponibili, selezionare unattività per linstallazione, quindi scavare dentro e deselezionare parti di il compito che non vuoi. apt-get non supporta i task e aptitude è migliore anche di strumenti per scopi speciali come tasksel.
-
aptitude supporta più sorgenti
Se i tuoi sorgenti. list è configurato per rendere disponibili più versioni di un pacchetto, aptitude ti consente di visualizzare in dettaglio le versioni disponibili e scegliere una versione non predefinita da installare. Se un pacchetto si rompe in unstable, è sufficiente riportarlo alla versione in testing.
-
aptitude registra le sue azioni
Aptitude registra il pacchetto che installa, aggiorna, e rimuove in / varlog / aptitude, che può essere utile per capire perché le cose hanno iniziato a rompersi dopo laggiornamento di ieri, o quando hai rimosso un pacchetto partiticlar.
– vedi timido jo
=================== Cè anche una discussione più recente del 2010 qui https://superuser.com/questions/93437/aptitude-vs-apt-get-which-is-the-recommended-aka-the-right-tool-to-use su StackExchange.