So installieren Sie lokale .deb-Pakete mit apt-get


144

Gibt es eine Möglichkeit, mit apt-get Packages Store auf Ihrer Festplatte zu installieren apt-get install ./package.deb?

Wenn nicht, wie geht man auf sehr einfache Weise mit den Abhängigkeiten um?


Das funktioniert jetzt. Wenn Sie noch SuperUser verwenden, können Sie die akzeptierte Antwort aktualisieren? Siehe unten.
Mikemaccana

Antworten:


121

Normalerweise dpkg -i <deb file>kann ich nicht sagen, dass es Abhängigkeiten braucht. Danach, wenn Sie eine tun apt-get update, wird am Ende etwas wie "Abhängigkeiten sind bereit zu installieren" sagen, ich denke, es empfiehlt sich dann zu verwenden apt-get install -f.

Sobald das erledigt ist, benutze ich dpkg -iwieder.

Hat in den letzten Jahren gut für mich funktioniert.

edit: ein bisschen weiter schauend, anscheinend kann ein Tool namens das gdebiso machen gdebi [deb file].


1
Vielen Dank, ich habe das gleiche durch "Fehler" dpkg dann apt-get install -f und es hat funktioniert.
Louis

2
gdebiist für mich gearbeitet und das einfachste was ich bisher gesehen habe.
Ctrl-Alt-Delor

55

Sirex hat es mehr oder weniger richtig, aber seine Antwort ist nicht klar. Ich habe das gerade gelöst, also habe ich Folgendes getan:

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

Wenn dies mit einer Meldung zu dem Paket fehlschlägt, die von etwas abhängt, das nicht installiert ist, können Sie es wahrscheinlich beheben, wenn Sie es ausführen

sudo apt-get -f install

Dies installiert die Abhängigkeiten (vorausgesetzt, sie sind in den Repos verfügbar, über die Ihr System Bescheid weiß) UND das Paket, das Sie ursprünglich installieren wollten ('f' ist die Option 'Fix' und 'y' ist die Option 'Annehmen, dass Sie dazu aufgefordert werden'). oder 'Frag mich nicht, ob es in Ordnung ist, installiere es einfach schon' (sehr nützlich für skriptgesteuerte stille Installationen). Auf dem System, auf dem ich war, musste dpkg nicht erneut ausgeführt werden (Ubuntu lucid 10.04).

Ich fand es interessant, dass, wenn Sie das -f beim Ausführen weglassen sudo apt-get install, Ihr Paket aufgrund einer ungelösten Abhängigkeit als nicht konfiguriert aufgelistet wird. Außerdem empfehle ich:Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Bearbeiten:

Wenn Sie installieren möchten , ohne auf alle Fragen ‚y‘ zu beantworten zu haben, können Sie das Add - yModifikator , wie ich ursprünglich enthalten: sudo apt-get -fy install. Ein Kommentator wies jedoch darauf hin, dass apt manchmal vorschlägt, die gesamte Desktop-Umgebung zu deinstallieren. Ich habe diese Arbeit in einer virtuellen Maschine ausgeführt und hatte diese Bedenken nicht, aber dieser Beitrag wurde aktualisiert, um ein bisschen vorsichtiger zu sein.


Wenn ich alle Paketdateien bereits in einem Verzeichnis habe, gibt es eine Möglichkeit, apt mitzuteilen, dass dies ein neues Repository ist, sodass ich es nicht zwingen muss, etwas ohne Abhängigkeiten zu installieren?
Berry Tsakala

2
Es tut mir leid, aber ich weiß es nicht. Ich würde vorschlagen, dies als eine weitere Frage der obersten Ebene zu stellen.
Akrikos

Verrückt seltsam, dass dies erforderlich ist. Auf Raspian erfordert dies sudo (für dpkg und apt-get): sudo dpkg -i mypackages.debusw.
Brent Faust

@ Rubistro Root-Zugriff ist auf allen Systemen erforderlich. Ich vermute, die Antworten gingen davon aus, dass die Befehle von root ausgeführt werden (z. B. von einer interaktiven Root-Shell oder einem Skript, das als root ausgeführt wird).
Amos Shapira

2
Fügen Sie die Option nicht hinzu -y. Es ist durchaus üblich, dass apt vorschlägt, beispielsweise die gesamte Desktop-Umgebung zu deinstallieren, wenn Sie dies zur falschen Zeit mit dem falschen Paket versuchen (zumindest unter Debian).
Oseiskar

45

Sie können die .deb-Datei auch mit gdebi installieren. Führen Sie die folgenden Befehle aus, um gdebi zu installieren.

sudo apt-get install gdebi-core

Installiere .deb Pakete mit gdebi,

sudo gdebi /path/to/filename.deb

Es werden auch Abhängigkeiten behoben.


4
Beachten Sie, dass gdebi nur ein einziges Argument nimmt und leise fällt den Rest auf dem Boden. Dies bedeutet, dass Sie, wenn Sie mehrere Debs gleichzeitig installieren (möglicherweise, weil sie voneinander abhängig sind), sorgfältig gdebiBefehle erstellen müssen, mit denen sie installiert werden können. imo diese hälfte besiegt den zweck von gdebi, aber du findest es vielleicht immer noch nützlich für eine einzelne datei
Anthony Sottile

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

3
@jjmontes, die nur funktionieren, wenn die Abhängigkeiten in alphabetischer Reihenfolge sind, die ich wetten würde, ist ziemlich selten
Anthony Sottile

Ich folgte diesem freesoftwaremagazine.com/articles/… (Fehler, bei dem das lokale Repo unter / var / www / html / debs liegen musste) und synaptic versuchte immer wieder, es von einem entfernten Server ohne Internet herunterzuladen, so dass gdebi großartig mit dem lokalen Repo zusammenarbeitete ! Außerdem mussten die .deb-Dateien seinchmod +r *.deb
Aquarius Power

34

Ja, der von Ihnen vorgeschlagene Befehl ist korrekt.

sudo apt-get install ./package.deb

oder

sudo apt install ./package.deb

installiert das Paket, das Sie von einer anderen Quelle als APT erhalten haben, und verwendet gleichzeitig die APT-Funktionen, um die Abhängigkeiten automatisch aufzulösen. Leider ist diese apt-getFunktion nicht in der Manpage dokumentiert .

Weitere Informationen finden Sie unter https://askubuntu.com/a/769542/250300 und https://askubuntu.com/a/795048/250300 .


8
Dies hätte die akzeptierte Antwort sein sollen.
Peter

Welche Version von apt-get hat diese Funktion hinzugefügt?
Kurt Fitzner

@ KurtFitzner Es wurde in APT 1.1 pro Release-Ankündigung hinzugefügt (gefunden über askubuntu.com/a/795048/250300 ).
Melebius
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.