Sprich, ich habe foo-1.2.3.deb
was von perl
und python
laufendem Befehl abhängt :
dpkg -i ./foo-1.2.3.deb
installiert diese Abhängigkeiten nicht. Also muss ich apt-get install perl python
von Hand.
Wie kann ich dpkg -i
diese Abhängigkeiten automatisch installieren?
Antworten:
Nach dem
dpkg
Ausführen des folgenden Befehls konnte ich die erforderlichen Abhängigkeiten installieren:Insgesamt sollte Ihr Terminal so aussehen:
Beachten Sie die Zeile über
Setting up package_with_unsatisfied_dependencies
. Hiermit wird die Installation von behoben (und abgeschlossen)package_with_unsatisfied_dependencies.deb
.quelle
sudo dpkg -i mypackage.deb
nochmal rennen ?sudo apt-get -f install
meines Pakets und dessen Abhängigkeiten wurden alle installiert. Das Ausführensudo dpkg -i my_package.deb
ist nicht erforderlich und installiert das Paket nur erneut.sudo dpkg -i package.deb; sudo apt-get -f install; sudo dpkg -i package.deb
. Der erstedpkg -i
Durchlauf markiert Abhängigkeiten,apt-get -f install
installiert erforderliche Abhängigkeiten und der zweite Durchlaufdpkg -i
installiert das Paket erfolgreich. Beachten Sie, dass diesapt-get install -f
ein völlig anderer Befehl ist.dpkg -i --force
; das wird ein kaputtes Paket erzwingen! Wenn Siedpkg
/ without /--force
ausführen, wird der erforderliche Eintrag in der Paketdatenbank vorgenommen,apt-get -f install
damit das Richtige getan wird.Sie können
gdebi-core
die Befehlszeilenversion des GDebi-Paketinstallationsprogramms von 10.04 und früher installieren. In den neueren Versionen von Ubuntu wird das Software Center verwendet, um Debs zu installieren, für die es keine entsprechende Befehlszeile gibt.Um ein Deb-Paket mit gdebi zu installieren, führen Sie einfach Folgendes aus:
quelle
ab apt 1.1 (verfügbar in Xenial (16.04), stretch)
apt install
erlaubt auch lokale Dateien:So viel einfacher und sauberer.
Siehe Release-Ankündigung
quelle
apt ./install foo-1.2.3.deb
funktioniert../
oder der Pfad verpasst wurdeGdebi
gdebi
installiert ein Deb-Paket und seine Abhängigkeiten. So verwenden Sie es:In neueren Versionen von Ubuntu ist dies nicht standardmäßig installiert, so dass Sie es von den Repositorys installieren müssen.
Siehe
man gdebi
für eine vollständige Liste der Optionen.gdebi
ist die Befehlszeile, die dem gleichnamigen grafischen Werkzeug entspricht, das in Ubuntu standardmäßig enthalten war. Der Befehl für das grafische Werkzeug istgdebi-gtk
und hat eine ähnliche Funktionalität:quelle
dpkg-repack
sie basierend auf einer solchen Deps-Liste verwenden :)Laufen
nach der installation von paketen mit dpkg können kaputte abhängigkeiten behoben werden (zumindest kann man das sagen ...). Ich werde aktualisieren, wenn ich es überprüfen werde.
quelle
sudo dpkg -i mypackage.deb
nochmal rennen ?apt-get -f install
funktioniert, ist aberapt-get install -f
nicht das gleiche.dpkg unterstützt keine Abhängigkeiten. Es gibt einen Ausweg, aber dafür müssten Sie eine lokale Datenbank erstellen (und daher kennen Sie die Abhängigkeiten bereits), die als veraltet angesehen wird (...).
Muss es eine Kommandozeile sein? (Server-Installation?) Wenn ja, schauen Sie auch,
apt-get -f
aber seien Sie vorsichtig: Das Lösen von Abhängigkeiten nach der Installation kann dazu führen, dass Sie ein kaputtes System haben.gdebi (gui frontend) war dazu in der Lage, wurde aber durch USC ersetzt.
Wie haben Sie die .deb heruntergeladen? Einige der neuen Funktionen von 11.04 sind die von einer Website heruntergeladenen .deb-Dateien. Diese werden in USC geöffnet, sodass Abhängigkeiten vom Installationsprogramm behoben werden.
BEARBEITEN basierend auf dem Kommentar von andrew:
sudo gdebi foo-1.2.3.deb
würde den Trick machen !!quelle
Alternativ
gdebi-gtk
können Sie Ubuntu Software Center verwenden.Doppelklicken Sie auf das Paket, und eine Schaltfläche zum Installieren sollte verfügbar sein.
quelle
Sie können eine Datei
dpkg-dep-inst
mit folgendem Inhalt erstellen .Ich gehe davon aus, dass Sie die Datei in Ihrem privaten Ordner erstellt haben. Mach es ausführbar mit
chmod +x dpkg-dep-inst
und verschiebe es nach/usr/local/bin
mitsudo cp dpkg-dep-inst /usr/local/bin
.Jetzt können Sie das Debian-Paket mit Abhängigkeiten automatisch installieren mit:
quelle
apt-get --yes --fix-broken install
und machen Sie die Fixierung automatisch.Ich bin gerade auf dieses Problem gestoßen. Beim Aufruf
apt-get install -f
werden jedoch keine empfohlenen Abhängigkeiten installiert ! Die einzige Problemumgehung wäre dann, ein lokales Repository zu erstellen und hinzuzufügen/etc/apt/sources.list
, dh:quelle
Tatsächlich lautet die Antwort, dass der
dpkg
Paketmanager Abhängigkeiten nicht sofort installieren kann. Du bist gekommenman dpkg
und hast das herausgefunden. So müssen Sie Tools verwenden , wieapt
,apt-get
,aptitude
, ..., basierend aufdpkg
.Ich würde sagen, dass genau der gleiche Fall für den
rpm
Paketmanager auf der anderen Linux-Hemisphäre gilt.rmp
ist nicht für abhängigkeitsbasierte Installationen gedacht. Es können einzelne Pakete installieren, und für die Abhängigkeiten zu installieren Sie verwendenyum
,urpmi
,up2date
werden diese alle auf RPM.Wie bereits erwähnt, besteht bei der
dpkg
direkten Installation von Paketen eine leichte Gefahr , da eine spätere Auflösung von Abhängigkeiten zu einem Systemausfall führen kann, wie in @Rinzwind beschrieben.quelle