Qual è la differenza tra dpkg e aptitude / apt-get?


125

Quando si installa un software tramite dpkg -i packageA.deb, le dipendenze richieste da packageAverranno scaricate e installate automaticamente? In che modo è diverso dall'uso apt-geto aptitude?


Correlati (soprattutto per quanto riguarda le dipendenze): askubuntu.com/q/40779/250300
Melebius

Risposte:


168

No, dpkginstalla solo un pacchetto, quindi dpkg -i packageName.debinstallando solo questo pacchetto Deb e ti avviseremo di tutte le dipendenze che devono essere installate, ma non le installerà e non configurerà il packageName.debperché bene ... le dipendenze sono non lì.

apt-getè un sistema di gestione dei pacchetti che gestisce l'installazione dei pacchetti Deb su distribuzioni Linux basate su Debian . Un sistema di gestione dei pacchetti è un insieme di strumenti che ti aiuteranno a installare, rimuovere e cambiare facilmente i pacchetti. Quindi apt-getè come un furbo dpkg.

Mi piace pensare alla sequenza temporale in questo modo (il seguente è solo io che parlo per esperienza. È pensato solo per darti un'idea di tutto questo):

  • Hanno trovato un modo per "archiviare" i file di un'applicazione in un "pacchetto" in modo che possa essere facilmente installato. Quindi, è nato il pacchetto Deb ( .debfile di estensione ).

    Un .debfile contiene i file necessari per l'esecuzione di un'applicazione, nonché (mi piace chiamarlo) "metadati" che contengono altre informazioni, come i nomi delle dipendenze di cui l'applicazione ha bisogno. Se vuoi vedere il contenuto di un .debfile, puoi usare il comando dpkg -c packageName.debe se vuoi vedere queste informazioni "meta-dati", usa il comando dpkg -I pacakgeName.deb(e se vuoi vedere solo le dipendenze, fallo dpkg -I packageName.deb | grep Depends).

  • Avevano bisogno di uno strumento per installare questi .debfile, quindi hanno creato lo dpkgstrumento. Questo strumento, tuttavia, installerà semplicemente il .debfile, ma non installerà le sue dipendenze perché non ha quei file e non ha accesso ai "repository" da cui estrarre le dipendenze.

  • Quindi, hanno escogitato apt-get, che automatizza i problemi nel punto precedente. Sotto il cofano, apt-getè fondamentalmente dpkg(mi piace pensarlo come apt-getun front-end per dpkg), ma intelligente che cercherà le dipendenze e le installerà. Controlla anche le dipendenze attualmente installate e determina quelle che non vengono utilizzate da nessun altro pacchetto e ti informerà che puoi rimuoverle.

aptitudepoi è arrivato. Utilizza le biblioteche apt-getusi e in realtà ha un'interfaccia utente interattivo (interfaccia utente). Se vuoi vedere questa UI, digita semplicemente aptitudeil terminale. Questo è aptitude . Sfrutta le librerie per fornire più opzioni e vantaggi rispetto a apt-get. Ad esempio, aptituderimuoverà automaticamente i pacchetti idonei, mentre apt-getper farlo è necessario un comando separato. Ma, alla fine, fare sudo aptitude install packageName.debdovrebbe almeno essere lo stesso di sudo apt-get install packageName.deb. Potrebbero esserci sottili differenze qua e là di cui non sono a conoscenza, ma entrambi cercheranno le dipendenze e faranno tutte quelle cose. Puoi leggere la risposta qui per maggiori informazioni sulle differenze tra aptitudee apt-get.

Inoltre, aptitudenon ha Super Cow Power.

EDIT: Apparentemente, lo fa. aptitude -v[v[v[v[v]]]] moo.

aptitudepotrebbe non essere installato per impostazione predefinita. Per installarlo, fai sudo apt-get install aptitudeo fai clic su questo: aptitudeInstalla aptitude .


Extra

Le seguenti informazioni non rispondono direttamente " Qual è la differenza tra dpkg e aptitude / apt-get? " Ma contribuisce al quadro generale.


Da Carlos Campderrós ' commento qui sotto :

gdebiè un altro strumento che è una specie di miscela tra apt-gete aptitude. Quando lo usi per installare un .debpacchetto ( gdebi packageName.deb), identificherà le dipendenze mancanti, le installerà usando apt-gete infine installerà e configurerà il pacchetto usando dpkg. Ha anche una GUI semplice e accurata che ti fornisce informazioni sul .debpacchetto, i file inclusi nel pacchetto e quali dipendenze devono essere installate. Per vedere questa GUI, lo faresti gdebi-gtk packageName.deb. Puoi gdebiprovare installandolo con sudo apt-get install gdebio fai clic su questo: gdebiInstalla gdebi .


Non voglio confondere nessuno, ma solo per darti un'altra parte dell'immagine, c'è un altro popolare formato di pacchetto Linux chiamato RPM, e i suoi file hanno l' .rpmestensione. Questo formato di pacchetto viene utilizzato su distribuzioni Linux basate su RPM (come Red Hat, CentOS e Fedora). Usano il comando rpmper installare un pacchetto, ed yumè il front-end per esso, è quello intelligente. Quindi i loro .rpmfile sono i nostri .debfile, il loro rpmstrumento è il nostro dpkgstrumento e il loro yumè il nostro apt-get.

Da Paddy Landau 's commento qui sotto :

alienè uno strumento che converte tra .rpme .debpacchetti. Quindi, se mai ti capita di trovarti nella situazione in cui hai un .rpmpacchetto e vuoi installarlo sul tuo Ubuntu (o su qualsiasi altra distribuzione basata su Debian), puoi usare il comando alien rpm_packageName.rpmper convertirlo .debe quindi installarlo usando dpkg. Puoi fare il contrario (convertire .debin .rpm) usando alien -r packageName.deb.


5
È stato molto utile ed è esattamente quello che stavo cercando. Tx!
Aniket Thakur,

4
Inoltre, puoi usare gdebi( apt-get install gdebi-core) che mescola apt-get/ aptitudecon dpkg. Lo chiami con gdebi some_package.debe analizzerà le sue dipendenze, chiamerai apt-getper installare quelle mancanti e quando tutte le dipendenze saranno soddisfatte, quindi chiamerai dpkgper installare finalmente il tuo pacchetto.
Carlos Campderrós,

2
@Alaa Sotto Extra , puoi anche menzionare che alienconverte i pacchetti tra .rpme .deb. Ciò è utile per i pacchetti disponibili per RPM ma non per DEB (o viceversa). Ad esempio, alien packagename.rpmper renderlo utilizzabile per Ubuntu.
Paddy Landau,

1
@AlaaAli aptitudenon è un frontend per apt-get. Entrambi i programmi sono frontend per la libapt-pkglibreria.
Eliah Kagan,

1
@edwardtorvalds AskUbuntu è un sito di domande e risposte. Cerca la tua risposta qui sul sito tra le migliaia di vecchie domande e, se non la trovi, fai la tua domanda, si spera che risponderanno anche persone più esperte di me.
Alaa Ali,

5

apt-get

La gestione dei pacchetti apt-getavviene di pari passo con il /etc/apt/sources.listfile.

apt-get install <package_name> installa un nuovo pacchetto sul tuo computer.

apt-get build-dep <package_name> Questo comando cerca nei repository e installa le dipendenze di compilazione. Se il pacchetto non è nei repository restituirà un errore.

apt-get install <package1_name> <package2_name> <package3_name> apt-get consente l'installazione di più pacchetti. separare i pacchetti con uno spazio.

auto-apt run <command_string> Quando viene richiamato, il comando auto-apt installa automaticamente i pacchetti in caso di accesso al file mancante. Se un programma tenta di accedere a un file noto per appartenere a un pacchetto disinstallato, auto-apt installerà quel pacchetto usando apt-get. Questa funzione richiede apt e sudo per funzionare.

Visita la pagina di istruzioni apt-get

attitudine

aptitudefornisce la funzionalità dselecte apt-getmolte funzioni aggiuntive non presenti in nessuno dei programmi.

aptitude ha una propria shell che è attivata da tastiera o mouse e gira in una finestra terminale

aptitude build-dep <package> - Installare le dipendenze di compilazione dei pacchetti - il che significa che i pacchetti necessari per compilare (o costruire ) la sua pacchetto sorgente. Ad esempio, molti pacchetti devono debhelpero autotoolsdevono essere compilati, ma non sono necessari per l'esecuzione.

Visita la pagina delle istruzioni di aptitude

dpkg

è uno strumento per installare, compilare, rimuovere e gestire pacchetti Debian. collegamento

dpkg -i <package.deb>installa un pacchetto Debian sul tuo computer. Non installa dipendenze per quanto posso scoprire dai file della guida.

Per i dettagli digitare dpkg --helpin una finestra del terminale.

Guide

una guida alla gestione dei file è disponibile qui


0

Penso che la cosa più importante e anche una differenza sia notare che è necessario utilizzare lo apt-getstrumento per installare i pacchetti. ( apto aptitudeva bene lo stesso).

Questo perché dpkgsi intende installare pacchetti senza installare pacchetti dipendenti. Per questo motivo, l'installazione di un pacchetto con dpkg, potrebbe causare un problema successivo in cui la risoluzione delle dipendenze potrebbe finire con un sistema guasto.

È necessario utilizzare la riga di comando apt-geto apt(dal 14.04) strumento per installare i pacchetti. Questi strumenti stanno usando dpkgper te e allo stesso tempo hanno il meccanismo di risoluzione delle dipendenze all'interno.

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.