Come installare i pacchetti .deb locali con apt-get


144

C'è un modo per installare i pacchetti memorizzati sul tuo HD con apt-get, come apt-get install ./package.deb?

In caso contrario, come gestire le dipendenze in un modo molto molto semplice?


Questo funziona ora. Se usi ancora SuperUser, puoi aggiornare la risposta accettata? Vedi sotto.
— mikemaccana,

Risposte:


121

di solito lo faccio dpkg -i <deb file>, fallirà nel dire che ha bisogno di dipendenze. Dopodiché, quando lo fai apt-get update, alla fine dirà qualcosa come "le dipendenze sono pronte per l'installazione", penso che quindi consigli di usare apt-get install -f.

Una volta fatto, lo uso di dpkg -inuovo.

Ha funzionato bene per me negli ultimi anni.

modifica: guardando un po 'oltre, apparentemente uno strumento chiamato gdebipuò farlo come gdebi [deb file].


1
Grazie ho fatto lo stesso con "errore" dpkg quindi apt-get install -f e ha funzionato.
— Louis,

2
gdebiha funzionato per me, e la più semplice che abbia mai visto finora.
— ctrl-alt-delor

55

Sirex lo ha più o meno corretto, ma la sua risposta non è chiara. Ho appena risolto questo, quindi ecco cosa ho fatto:

sudo dpkg -i /path/to/filename.deb

Se questo non riesce con un messaggio sul pacchetto a seconda di qualcosa che non è installato, è possibile risolverlo se lo si esegue

sudo apt-get -f install

Questo installerà le dipendenze (supponendo che siano disponibili nei repository di cui il tuo sistema è a conoscenza) E il pacchetto che stavi inizialmente richiedendo di installare ('f' è l'opzione 'fix' e 'y' è 'assume sì ai prompt' o l'opzione 'non chiedermi se va bene, basta installarlo già' - molto utile per installazioni silenziose con script). Sul sistema su cui mi trovavo, non era necessario eseguire nuovamente dpkg (Ubuntu lucid 10.04).

Ho trovato interessante che se si interrompe -f quando si esegue sudo apt-get install, verrà elencato il pacchetto come non configurato a causa di una dipendenza non risolta, oltre a suggerire utile:Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Modificare:

Se si desidera installare senza dover rispondere 'y' a tutte le domande, è possibile aggiungere il ymodificatore di come ho originariamente incluso: sudo apt-get -fy install. Tuttavia, un commentatore ha sottolineato che apt a volte suggerisce di disinstallare l'intero ambiente desktop. Stavo facendo questo lavoro in una macchina virtuale e non avevo questa preoccupazione, ma questo post è stato aggiornato per riflettere un po 'più attento.


Se ho già tutti i file del pacchetto in una directory, c'è un modo per dire a apt che si tratta di un nuovo repository, quindi non dovrò forzarlo a installare nulla senza dipendenze?
— Berry Tsakala

2
Mi dispiace, ma non lo so. Suggerirei di farlo come un'altra domanda di alto livello.
— Akrikos,

Pazzo strano che questo sia richiesto. Su raspian, questo richiederà sudo (sia per dpkg che per apt-get):, sudo dpkg -i mypackages.debecc.
— Brent Faust

Accesso root @Rubistro richiesto su tutti i sistemi. Immagino che le risposte presupponessero che i comandi fossero eseguiti da root (ad esempio da una shell root interattiva o da uno script che viene eseguito come root).
— Amos Shapira,

2
Per il tuo bene, non aggiungere l' -yopzione. È abbastanza comune per apt suggerire, ad esempio, di disinstallare l'intero ambiente desktop se si prova questo con il pacchetto sbagliato al momento sbagliato (almeno su Debian).
— oseiskar,

45

Puoi anche installare il file .deb usando gdebi. Esegui i comandi seguenti per installare gdebi,

sudo apt-get install gdebi-core

Installa i pacchetti .deb con gdebi,

sudo gdebi /path/to/filename.deb

Corregge anche le dipendenze.


4
Nota che gdebi prende solo un singolo argomento e fa cadere silenziosamente il resto sul pavimento. Ciò significa che se stai installando più debs contemporaneamente (forse perché dipendono l'uno dall'altro) dovrai creare con cura i gdebicomandi che consentono loro di installarli. imo questa metà sconfigge lo scopo di gdebi, ma potresti ancora trovarlo utile per un singolo file
— Anthony Sottile,

@Anthony thenfind -name *.deb -exec gdebi {} \;
— jjmontes

3
@jjmontes che funzionerà solo se le interdipendenze sono in ordine alfabetico che scommetterei è piuttosto raro
— Anthony Sottile,

Ho seguito questo freesoftwaremagazine.com/articles/… (bug il repo locale doveva essere su / var / www / html / debs) e synaptic continuava a provare a scaricare da remoto anche senza internet, quindi gdebi ha funzionato benissimo con il repository locale ! inoltre, i file .deb dovevano esserechmod +r *.deb
— Aquarius Power il

34

Sì, il comando che hai proposto è corretto.

sudo apt-get install ./package.deb

o

sudo apt install ./package.deb

installerà il pacchetto ottenuto da un'altra fonte diversa da APT e allo stesso tempo utilizzerà le funzionalità APT per risolvere automaticamente le sue dipendenze. Sfortunatamente, questa apt-getfunzione non è documentata nella pagina man .

Vedi https://askubuntu.com/a/769542/250300 e https://askubuntu.com/a/795048/250300 per i dettagli.


8
Questa avrebbe dovuto essere la risposta accettata.
— Peter,

Quale versione di apt-get ha aggiunto questa funzionalità?
— Kurt Fitzner,

@KurtFitzner È stato aggiunto in APT 1.1 per l' annuncio di rilascio (trovato tramite askubuntu.com/a/795048/250300 ).
— Melebio
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.