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

115

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

    
posta Aniket Thakur 17.06.2013 - 09:08

3 risposte

155

No, dpkg installa solo un pacchetto, quindi facendo dpkg -i packageName.deb installerà solo questo pacchetto Deb e ti informerà di eventuali dipendenze che devono essere installate, ma sarà non installali e non configura packageName.deb perché ... le dipendenze non sono presenti.

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

Mi piace pensare alla timeline in questo modo (il seguente è solo un mio commento sull'esperienza: è pensato solo per darti un'idea di questa cosa):

  • Sono venuti in mente un modo per "memorizzare" i file di un'applicazione in un "pacchetto" in modo che possa essere facilmente installato. Così è nato il pacchetto Deb ( .deb file di estensione ).

      

    Un file .deb contiene i file necessari a un'applicazione da eseguire, così come (mi piace chiamarlo) "meta-dati" che contiene altre informazioni, come i nomi di le dipendenze richieste dall'applicazione. Se vuoi vedere il contenuto di un file .deb , puoi usare il comando dpkg -c packageName.deb , e se vuoi vedere queste informazioni sui "meta-dati", usa il comando dpkg -I pacakgeName.deb (e se vuoi solo guarda le dipendenze, fai dpkg -I packageName.deb | grep Depends ).

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

  • Poi, hanno trovato apt-get , che automatizza i problemi nel punto precedente. Sotto il cofano, apt-get è fondamentalmente dpkg (mi piace pensare che apt-get sia un front-end per dpkg ), ma intelligente che cercherà le dipendenze e le installerà. Osserva anche le dipendenze attualmente installate e determina quelle che non vengono utilizzate da altri pacchetti e ti informerà che puoi rimuoverle.

aptitude poi è arrivato. Utilizza le librerie apt-get utilizza e in realtà ha un'interfaccia utente interattiva (interfaccia utente) . Se vuoi vedere questa interfaccia utente, digita semplicemente aptitude nel terminale. Questo è aptitude . Sfrutta le librerie per fornire più opzioni e vantaggi di apt-get . Ad esempio, aptitude rimuoverà automaticamente i pacchetti idonei, mentre apt-get richiede un comando separato per farlo. Ma, alla fine, facendo sudo aptitude install packageName.deb dovrebbe almeno essere uguale a sudo apt-get install packageName.deb . Potrebbero esserci sottili differenze qua e là che non so, ma cercheranno entrambe le dipendenze e faranno tutte quelle cose. Puoi leggere la risposta qui per ulteriori informazioni sulle differenze tra aptitude e apt-get .

Inoltre, aptitude non ha Super Cow Powers.

  

EDIT: Apparentemente, lo fa. % Co_de%.

aptitude -v[v[v[v[v]]]] moo potrebbe non essere installato per impostazione predefinita. Per installarlo, fai aptitude o fai clic su questo: aptitude .

Extra

  

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

Da Carlos Campderrós ' commento sotto :

sudo apt-get install aptitude è un altro strumento che è una specie di miscela tra gdebi e apt-get . Quando lo utilizzi per installare un pacchetto aptitude ( .deb ), identifica le dipendenze mancanti, le installa utilizzando gdebi packageName.deb e infine installa e configura il pacchetto utilizzando apt-get . Ha anche una GUI semplice e ordinata che fornisce informazioni sul pacchetto dpkg , i file inclusi nel pacchetto, e quali dipendenze devono essere installate. Per vedere questa GUI, dovresti fare .deb . Puoi dare una prova di gdebi-gtk packageName.deb installandola con gdebi o fare clic su questo: gdebi .

Non voglio confondere nessuno, ma solo per darti un'altra parte dell'immagine, c'è un altro popolare formato di pacchetto Linux chiamato RPM, ei suoi file hanno l'estensione sudo apt-get install gdebi . Questo formato di pacchetto viene utilizzato nelle distribuzioni Linux basate su RPM (come Rosso Hat, CentOS e Fedora). Usano il comando .rpm per installare un pacchetto e rpm è il front-end per esso, è quello intelligente. Quindi i loro file yum sono i nostri file .rpm , il loro strumento .deb è il nostro strumento rpm e il loro dpkg è il nostro yum .

Da Paddy Landau 's commento sotto :

apt-get è uno strumento che converte tra alien e .rpm pacchetti. Quindi, se ti trovi nella situazione in cui hai un pacchetto .deb , e vuoi installare su Ubuntu (o qualsiasi altra distribuzione basata su Debian), puoi usare il comando .rpm per convertirlo in alien rpm_packageName.rpm , quindi installarlo utilizzando .deb . Puoi eseguire l'inverso (converti dpkg in .deb ) utilizzando .rpm .

    
risposta data Alaa Ali 17.06.2013 - 09:30
5

apt-get

La gestione dei pacchetti tramite apt-get viene eseguita mano nella mano con il file /etc/apt/sources.list.

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

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

apt-get install <package1_name> <package2_name> <package3_name> apt-get consente l'installazione di più pacchetti. separa 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 ai file mancanti. Se un programma tenta di accedere a un file noto come appartenente a un pacchetto disinstallato, auto-apt installerà il pacchetto usando apt-get. Questa funzione richiede che apt e sudo funzionino.

Visita la pagina delle istruzioni di apt-get

attitudine

aptitude fornisce la funzionalità di dselect e apt-get nonché molte funzionalità aggiuntive non presenti in nessuno dei due programmi.

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

aptitude build-dep <package> - Installa le dipendenze di compilazione dei pacchetti - il che significa che i pacchetti necessari per compilare (o compilare ) il suo pacchetto sorgente. Ad esempio, molti pacchetti hanno bisogno di debhelper o autotools da costruire, ma non ne hanno bisogno per essere eseguiti.

Visita la pagina delle istruzioni di aptitude

dpkg

è uno strumento per installare, costruire, rimuovere e gestire i pacchetti Debian. link

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

Per i dettagli digita dpkg --help in una finestra di terminale.

Guide

puoi trovare una guida alla gestione dei file qui

    
risposta data SimplySimon 17.06.2013 - 09:29
0

Penso che la cosa più importante e anche una differenza è che è necessario utilizzare lo strumento apt-get per installare i pacchetti. ( apt o aptitude va bene pure).

Questo perché dpkg è pensato per installare pacchetti senza installare pacchetti dipendenti. Per questo motivo, l'installazione di un pacchetto con dpkg potrebbe portare a un problema successivo in cui la risoluzione delle dipendenze potrebbe finire con un sistema danneggiato.

Dovresti usare lo strumento riga di comando apt-get o apt (dal 14.04) per installare i pacchetti. Questi strumenti utilizzano dpkg per te e allo stesso tempo hanno il meccanismo di risoluzione delle dipendenze all'interno.

    
risposta data prosti 16.08.2018 - 21:24

Leggi altre domande sui tag