it-swarm.com.de

Wie kann ich dpkg -i Abhängigkeiten für mich installieren lassen?

Angenommen, ich habe foo-1.2.3.deb, was von Perl und python abhängt. Führen Sie jedoch den Befehl aus:

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 veranlassen, diese Abhängigkeiten automatisch für mich zu installieren?

318
Xiè Jìléi

Nachdem ich dpkg verwendet habe, konnte ich mit dem folgenden Befehl die erforderlichen Abhängigkeiten installieren:

Sudo apt-get -f install

Insgesamt sollte Ihr Terminal so aussehen:

$ 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...

Beachten Sie die Zeile über Setting up package_with_unsatisfied_dependencies. Dies behebt (und vervollständigt) die Installation von package_with_unsatisfied_dependencies.deb.

409
Arindom

Sie können gdebi-core installieren, die Befehlszeilenversion des GDebi-Paketinstallationsprogramms von 10.04 und früher. 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:

Sudo gdebi my_package_1.0.deb
111

ab apt 1.1 (verfügbar in Xenial (16.04), stretch) apt install erlaubt auch lokale Dateien:

Sudo apt install ./foo-1.2.3.deb

So viel einfacher und sauberer.

Siehe Ankündigung der Veröffentlichung

59
textshell

Gdebi

gdebi installiert ein Deb-Paket und seine Abhängigkeiten. So verwenden Sie es:

_Sudo gdebi package.deb
_

In neueren Versionen von Ubuntu ist dies nicht standardmäßig installiert, so dass Sie es von den Repositorys installieren müssen.

Eine vollständige Liste der Optionen finden Sie unter man gdebi .

gdebi ist die Befehlszeile, die dem gleichnamigen grafischen Werkzeug entspricht, das in Ubuntu standardmäßig enthalten war. Der Befehl für das grafische Tool lautet _gdebi-gtk_ und hat eine ähnliche Funktionalität:

gdebi-gtk

38
dv3500ea

laufen

Sudo apt-get install -f

nach der installation von paketen mit dpkg können kaputte abhängigkeiten behoben werden (zumindest man apt-get sagt das ...). Ich werde aktualisieren, wenn ich es überprüfen werde.

21
Denwerko

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 betrachtet wird (...).

Muss es eine Kommandozeile sein? (server install?) Wenn ja, schauen Sie sich auch _apt-get -f_ an, 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) hat das früher gemacht, 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 !!

9
Rinzwind

Sie können eine Datei dpkg-dep-inst mit folgendem Inhalt erstellen.

#!/bin/bash

DEBIAN_FILE1=$1
dpkg -i $DEBIAN_FILE1 || apt-get --fix-broken install

Ich gehe davon aus, dass Sie die Datei in Ihrem privaten Ordner erstellt haben. Machen Sie es mit chmod +x dpkg-dep-inst ausführbar und verschieben Sie es mit /usr/local/bin nach Sudo cp dpkg-dep-inst /usr/local/bin.

Jetzt können Sie das Debian-Paket mit Abhängigkeiten automatisch installieren mit:

Sudo dpkg-dep-inst foo-1.2.3.deb
3
BuZZ-dEE

Alternativ zu gdebi-gtk können Sie Ubuntu Software Center verwenden.

Doppelklicken Sie auf das Paket, und eine Schaltfläche zum Installieren sollte verfügbar sein.

3
Henrique

Ich bin gerade auf dieses Problem gestoßen. Wenn Sie apt-get install -f aufrufen, werden nicht empfohlene Abhängigkeiten installiert! Die einzige Lösung hierfür wäre, ein lokales Repository zu erstellen und zu /etc/apt/sources.list hinzuzufügen, d. H .:

apt-ftparchive packages . > Packages && gzip < Packages > Packages.gz
Sudo echo "deb file://$PWD /" >> /etc/apt/sources.list
Sudo apt-get update
1
Alex Kläser

Tatsächlich ist die Antwort, dass der Paketmanager dpkg keine sofort einsatzbereiten Abhängigkeiten installieren kann. Du hast man dpkg und das herausgefunden. Sie müssen also Tools wie apt, apt-get, aptitude, ... verwenden, die auf dpkg basieren.

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 kann einzelne Pakete installieren, und für die Installation der Abhängigkeiten verwenden Sie yum, urpmi, up2date. Diese basieren alle auf RPM.

Wie bereits erwähnt, besteht eine leichte Gefahr, dass Pakete mit dpkg direkt installiert werden, da die Auflösung späterer Abhängigkeiten zu einem Systemausfall führen kann, wie in @Rinzwind beschrieben.

0
prosti