Domanda Come lasciare `dpkg -i` installare le dipendenze per me?


Di ', ho foo-1.2.3.deb da cui dipende perl e pythontuttavia, il comando di esecuzione:

dpkg -i ./foo-1.2.3.deb

non installerà queste dipendenze. Quindi devo apt-get install perl python a mano.

Come fare dpkg -i installare automaticamente queste dipendenze?


260
2018-05-04 13:11


origine


Possibile duplicato di Come recuperare automaticamente le dipendenze mancanti durante l'installazione del software da .deb? - pd12
@ pd12: Urrà per riferimenti circolari! :-D - David Foerster
heh, ho deciso di collegare entrambi e vedere quale mods selezionerebbe. - pd12
È incredibile che nel 2016, a L'installazione grafica .deb fallisce silenziosamente senza rivelare all'utente le dipendenze mancanti. - Dan Dascalescu


risposte:


Dopo aver usato dpkg, l'esecuzione del seguente comando mi ha aiutato a installare le dipendenze richieste:

sudo apt-get -f install

In tutto, il tuo terminale dovrebbe assomigliare a questo:

$ sudo dpkg -i package_with_unsatisfied_dependencies.deb
dpkg: dependency problems prevent ... 
[additional messages]

$ sudo apt-get -f install
[apt messages]
Setting up [dependency]...
Setting up package_with_unsatisfied_dependencies...

Avviso la linea su Setting up package_with_unsatisfied_dependencies. Questo correzioni (e completa) l'installazione di package_with_unsatisfied_dependencies.deb.


348
2018-05-04 15:38



Dovrei correre sudo dpkg -i mypackage.deb ancora ? - Muhammad Gelbana
Dopo aver corso sudo apt-get -f install il mio pacchetto e le sue dipendenze sono state tutte installate. In esecuzione sudo dpkg -i my_package.deb non è necessario e installerà di nuovo il pacchetto. - Gus E
Seguendo i lavori su Ubuntu 14.04: sudo dpkg -i package.deb; sudo apt-get -f install; sudo dpkg -i package.deb. Il primo dpkg -i eseguire dipendenze marchi, apt-get -f install installa le dipendenze richieste e il secondo dpkg -iinstalla con successo il pacchetto. Nota che apt-get install -f è un comando totalmente diverso. - Mikko Rantalainen
@ysth no, non farlo dpkg -i --force; che forzerà l'installazione di un pacchetto danneggiato! In esecuzione dpkg /senza/ --force farà la voce necessaria nel database del pacchetto in modo che apt-get -f install farà la cosa giusta - Brian A. Henning
@Lotharyx: non posso provarlo adesso, ma non pensavo che il dpkg senza forzature (che fallisce a causa di dipendenze mancanti) farebbe una voce nel database del pacchetto - ysth


Puoi installare gdebi-core, che è la versione da riga di comando del programma di installazione del pacchetto GDebi dalla 10.04 in poi. Nelle versioni più recenti di Ubuntu, il Software Center viene utilizzato per installare deb, che non ha un equivalente a riga di comando.

Per installare un pacchetto deb utilizzando gdebi, esegui semplicemente:

sudo gdebi my_package_1.0.deb

108
2018-05-04 14:47





Gdebi

gdebi installa un pacchetto deb e le sue dipendenze. Per usarlo, esegui:

sudo gdebi package.deb

Nelle versioni più recenti di Ubuntu, questo non è installato per impostazione predefinita, quindi sarà necessario installarlo dai repository.

Vedere man gdebi per un elenco completo di opzioni.

gdebi è la riga di comando equivalente allo strumento grafico con lo stesso nome che era normalmente incluso in Ubuntu. Il comando per lo strumento grafico è gdebi-gtk e ha funzionalità simili:

gdebi-gtk


35
2018-05-04 16:56



gdebi-gtk non mostrerà i deps richiesti (la versione che ho qui almeno, e sembra un bug), ma la linea di comando lo farà! Se abbiamo un'altra macchina con i pacchetti che possiamo usare dpkg-repack su di esso sulla base di tale elenco deops :) - Aquarius Power


iniziando con apt 1.1 (disponibile in Xenial (16.04), stretch) apt install consente anche i file locali:

sudo apt install ./foo-1.2.3.deb

Molto più semplice e pulito.

Vedere il comunicato di rilascio


27
2017-07-05 09:23



È ora che questo sia disponibile - Mike
Questa soluzione non ha funzionato. Tutto ciò che è successo è stato un elenco di errori. - Billy S
@BillyS mi dispiace sapere che non ha funzionato per te, ma senza la versione della distro che stai utilizzando e quali errori hai ottenuto non è affatto attuabile. - textshell
Il comando non ha funzionato per me ma apt ./install foo-1.2.3.deb lavorato. - Cenk Alti
Corretto il comando, i commenti sopra si riferivano alla precedente versione di risposta che mancava il necessario ./ o percorso - Zanna


in esecuzione

sudo apt-get install -f

dopo aver installato il pacchetto con dpkg può risolvere le depenzioni rotte (almeno l'uomo apt-get dire così ...). Ill aggiornamento quando lo controllerò.


18
2018-05-04 13:17



Dovrei correre sudo dpkg -i mypackage.deb ancora ? - Muhammad Gelbana
apt-get -f install funziona, ma apt-get install -f non è lo stesso. - 200_success


dpkg non ha il supporto per le dipendenze. C'è un modo per aggirarlo, ma ciò richiederebbe di creare un database locale (e quindi si conoscessero già le dipendenze) ed è considerato obsoleto (...).

Deve essere una linea di comando? (installazione del server?) Se è così anche dare un'occhiata a apt-get -f ma fai attenzione: risolvendo le dipendenze dopo l'installazione potresti finire con un sistema guasto.

GDebi (gui frontend) usato per essere in grado di fare questo, ma è stato sostituito con USC.

Come hai scaricato il .deb. Alcune delle nuove funzionalità di 11.04 sono la gestione di .deb scaricato da un sito Web: viene aperto in USC, quindi le dipendenze verranno risolte dall'installatore.

EDIT basato sul commento di Andrew: sudo gdebi foo-1.2.3.deb  farebbe il trucco !!


9
2018-05-04 13:32



gdebi può ancora essere usato per questo. Software Center è ora solo l'app predefinita. Inoltre, come note Chen Xiao-Long, gdebi può anche essere usato sulla riga di comando. - andrewsomething
freddo! allora la domanda ha una risposta perché gdebi può essere usato anche a comando, a quanto pare. - Rinzwind
Questa dovrebbe essere la risposta accettata. - prosti


In alternativa a gdebi-gtk puoi usare Ubuntu Software Center.

Fare doppio clic sul pacchetto e dovrebbe essere disponibile un pulsante di installazione.


3
2018-05-10 07:55