Può causare problemi a passare da apt-get a aptitude?


8

Ho pensato di passare a aptitude, ma ho sentito la gente dire "se stai già usando apt-get, dovresti aspettare fino alla prossima installazione per passare". Perché la gente dice questo? Che tipo di problemi (se presenti) può causare?

Risposte:


8

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


2
Un'ottima, chiara risposta. Un ulteriore dettaglio è come / quando rimuovono le dipendenze installate automaticamente. aptitudeli rimuoverà immediatamente, ma apt-getti chiederà di rimuoverli solo inserendo il comando apt-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
Telemaco,

5

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 aptitudeil 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-gete aptitudeseguiranno i pacchetti installati automaticamente come dipendenza da qualcos'altro. Quindi, ad esempio, se si installa mpd, si potrebbe ottenere lib-so-and-socome dipendenza. Lo fanno, in modo che se rimuovi in ​​seguito mpd, lib-so-and-soviene rimosso anche. Ma aptitudee apt-getgestire questo su pulito in modo diverso. aptitudecerca immediatamente di rimuovere tutte le dipendenze orfane; ma apt-getsuggerisce semplicemente che corri apt-get autoremoveper pulire. (La logica dietro tutto questo è che hai solo la libreria da quando mpdne 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 aptitudeeapt-get lo saprà e non tenterà di rimuovere la libreria.)

Qual è il mio punto? Bene, se stai vedendo scostarsi costantemente apt-get autoremovee passi a aptitude, allora potresti essere scioccato la prima volta che provi a installare qualcosa. aptitudeproverò 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 gnomepacchetto, 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 diaptitudeanche 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:

  1. Leggere sempre l'output di aptitudeo apt-getattentamente, prima di dire di sì a qualsiasi cosa.
  2. Ricorda che puoi sempre eseguire una corsa a secco usando aptitude -s safe-upgradeo aptitude -s install foo. La -s|--simulatebandiera è tua amica.

4

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


1
Hai un link al post della mailing list?
Matteo,

Matthew, immagini di tenere un archivio perfettamente indicizzato dell'intera mailing list debian-user qui? Quando è chiaro da quanto sopra che non ricordo nemmeno l'anno?
CarlF,

@Matthew: qualche tempo fa (Sarge o Early Etch), c'erano molte persone preoccupate di passare da apt-geta aptitude. All'epoca gestivano molte funzioni essenziali in modo molto diverso. Con il passare del tempo, sono diventati molto più simili e aptitudesono maturati molto. Per il 90% dei casi ora, non ci dovrebbero essere problemi se si cambia. Vedi il mio post per un caso limite.
Telemaco,

2

Direi anche di andare avanti e usare aptitude.
Aptitudeha 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 aptitudeha 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-cachee dpkge 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.


1

Non sono solo un'interfaccia diversa per lo stesso backend?


2
aptitudeè un'interfaccia più caratteristica ...
Quack Quixote

Potrebbe essere. Ma un'interfaccia con più funzionalità non significa necessariamente un backend diverso.
Svish,

2
no, hai ragione, entrambi sono front-end dpkg. ma dpkginstalla solo i pacchetti; sono i front-end che si occupano di ricerca, risoluzione delle dipendenze e download.
Quack Quixote

ma la ricerca, il download e la risoluzione delle dipendenze non romperanno nulla. o se così fosse, secondo me sarebbe molto strano ...
Svish,

2
ho appena notato il tuo ultimo commento. tieni presente che sono i frontend che decidono cosa installare; dpkg esegue solo l'installazione. se qualcosa si rompe, di solito è perché la risoluzione della dipendenza non è riuscita o perché l'utente ha disattivato la risoluzione della dipendenza (ad es. con un'opzione --force ).
Quack Quixote,

1

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!


-1

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


Non credo che siano gli stessi. A meno che le cose non siano cambiate, aptitude farà più traccia delle dipendenze e rimuoverà tutti i pacchetti che ha installato automaticamente, mentre apt-get no. Cioè, se foo dipende dalla barra e si installa e si rimuove foo con apt-get, la barra rimarrà sul proprio sistema. Se fai lo stesso con attitudine, non lo farà.
William Pursell,

Hai ragione: vedi sotto i commenti del ~ ciarlatano.
dag729,

@William, @ dag729: le versioni attuali apt-getoffrono anche la rimozione automatica dei pacchetti installati solo come dipendenze. La differenza rimanente a tale proposito è che aptituderimuove istantaneamente le dipendenze (come appropriato), ma apt-getti 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.
Telemaco,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.