GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la differenza tra apt-get e aptitude?

Soluzione 1:

aptitude è un wrapper per dpkg proprio come apt-get/apt-cache, ma è uno strumento one-stop-shop per la ricerca/installazione/rimozione/interrogazione. Alcuni esempi che apt potrebbe non fornire:

$ aptitude why libc6
i   w64codecs Depends libc6 (>= 2.3.2)
$ aptitude why-not libc6
Unable to find a reason to remove libc6.

$ aptitude show libc6
Package: libc6
State: installed
Automatically installed: no
Version: 2.9-4ubuntu6
Priority: required
Section: libs
Maintainer: Ubuntu Core developers <[email protected]>
Uncompressed Size: 12.1M
Depends: libgcc1, findutils (>= 4.4.0-2ubuntu2)
Suggests: locales, glibc-doc
Conflicts: libterm-readline-gnu-perl (< 1.15-2), 
tzdata (< 2007k-1), tzdata-etch, nscd (< 2.9)
Replaces: belocs-locales-bin
Provides: glibc-2.9-1
Description: GNU C Library: Shared libraries
 Contains the standard libraries that are used by nearly all programs 
 on the system. This package includes shared versions of the standard 
 C library and the standard math library, as well as many others.

Soluzione 2:

[email protected] ~$ aptitude -h | tail -n 1
              This aptitude does not have Super Cow Powers.
[email protected] ~$ apt-get -h | tail -n 1
                   This APT has Super Cow Powers.
[email protected] ~$ aptitude moo
    There are no Easter Eggs in this program.
[email protected] ~$ apt-get moo
         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~
...."Have you mooed today?"...
[email protected] ~$ aptitude -v moo
There really are no Easter Eggs in this program.
[email protected] ~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
[email protected] ~$ aptitude -vvv moo
Stop it!
[email protected] ~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
[email protected] ~$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
[email protected] ~$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course. 

Soluzione 3:

Lo strumento ufficiale attualmente utilizzato all'interno dell'installer Debian e raccomandato nelle note di rilascio è aptitude .

Aptitude offre un'interfaccia curses (se eseguita senza alcun parametro) e un'interfaccia a riga di comando che può fare quasi tutto ciò che apt-cache /apt-get fa. Ha anche un migliore risolutore di dipendenze che ti consente di navigare tra più soluzioni. Anche quando utilizzi la versione a riga di comando, puoi interagire con la soluzione proposta e dare ordini o suggerimenti supplementari (come l'installazione o la rimozione di un pacchetto consigliato da un altro).

Ma aptitude si basa sulla libreria libapt (non è un wrapper diretto di dpkg) e come tale dipende dal apt pacchetto in modo da non poter installare aptitude senza apt-get (che si trova anche nel pacchetto apt).

$ dpkg --status aptitude| grep Depends
Depends: libapt-pkg-libc6.9-6-4.7, [...]
$ dpkg --status apt|grep Provides
Provides: libapt-pkg-libc6.9-6-4.7
$ dpkg --search /usr/lib/libapt-pkg-libc6.9-6.so.4.7 /usr/bin/apt-get
apt: /usr/lib/libapt-pkg-libc6.9-6.so.4.7
apt: /usr/bin/apt-get

Per saperne di più su come interagiscono apt/dpkg/aptitude è possibile controllare il diagramma realizzato da Daniel Burrows (l'autore principale di aptitude). Un altro diagramma presenta le informazioni memorizzate dai vari strumenti di gestione dei pacchetti:una mappa dei file di stato di apt e dpkg.

Puoi anche leggere il mio articolo apt-get, aptitude, … scegli il gestore di pacchetti giusto per te

Soluzione 4:

aptitude ricorda quali pacchetti hai deliberatamente installato e quali sono stati installati automaticamente per soddisfare le dipendenze. Dopo la rimozione di un pacchetto, aptitude rimuoverà i pacchetti installati automaticamente per mantenere il sistema in ordine. apt-get non è così intelligente.

aptitude diventerà rapidamente uno strumento indispensabile una volta utilizzati diversi repository con diverse versioni di un pacchetto. Immagina di lavorare con backports.org o repository non ufficiali come debian-multimedia.org . Quindi aptitude mostrerà (nella parte inferiore della pagina dei dettagli di un determinato pacchetto) il numero di versione disponibile e ti consentirà di selezionarne uno.

Se ti trovi in ​​una situazione in cui i programmi sono in conflitto a causa di tale utilizzo di repository non ufficiali, vedrai un "Broken:..." visualizzare in alto. Puoi digitare l~b (limit / flag / broken) e ottieni solo un elenco di pacchetti che sono in conflitto tra loro. Rende molto più semplice la risoluzione manuale del conflitto.

Inoltre puoi usare "l " per limitare l'elenco dei pacchetti. Immagina di cercare pacchetti che iniziano con "openoffice " poi premi "l " e digita "^openoffice " (è un'espressione regolare) e vedrai solo quei pacchetti. Scegli un "elenco di pacchetti semplice" dal menu e raggiungerai rapidamente il tuo obiettivo.

Il manuale completo è molto ampio e ti offre molti più filtri e possibilità. Anche se non li conosci aptitude è un pratico sostituto di apt-get e puoi usarlo con parametri comuni come:

aptitude install ... (install or upgrade a package)
aptitude remove ... (remove the binary portions of a package but preserve your /etc configuration)
aptitude purge ... (remove the package completely including your configuration)

Soluzione 5:

Oltre a fornire una bella interfaccia utente della console quando esegui aptitude senza argomenti, combina i vari apt-* comandi (e dselect ) in un'unica utility..

Per cercare un pacchetto e installarlo, utilizzare apt-get:

apt-cache search somepkg
apt-get install somepkg

..ma con aptitude è lo stesso comando:

aptitude search somepkg
aptitude install somepkg

aptitude ha alcune funzionalità aggiuntive, come aptitude changelog somepkg e cose come conservare i pacchetti (per impedire che vengano aggiornati) - niente che non potresti ottenere tramite altri comandi/metodi, è solo più unificato e piacevole da usare.


Linux
  1. Qual è la differenza tra InnoDB e MyISAM?

  2. Qual è la differenza tra Git Switch e Checkout?

  3. Qual è la differenza tra mutex e sezione critica?

  4. Qual è la differenza tra adduser e useradd?

  5. Qual è la differenza tra $(CC) e $CC?

Qual è la differenza tra Linux e Unix?

Qual è la differenza tra Login e Non-Login Shell

Qual è la differenza tra il comando apt e apt-get?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?

Qual è la differenza tra route e ip route?