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

256

Angenommen, ich habe foo-1.2.3.deb , was von perl und python abhängig ist, jedoch laufender Befehl:

dpkg -i ./foo-1.2.3.deb

installiert diese Abhängigkeiten nicht. Also muss ich apt-get install perl python von Hand.

Wie mache ich dpkg -i automatisch diese Abhängigkeiten für mich installieren?

    
Xiè Jìléi 04.05.2011, 15:11

10 Antworten

344

Nachdem ich dpkg benutzt hatte, half mir das Ausführen des folgenden Befehls, die erforderlichen Abhängigkeiten zu installieren:

sudo apt-get -f install

Insgesamt sollte Ihr Terminal wie folgt 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 . Diese behebt (und vervollständigt) die Installation von package_with_unsatisfied_dependencies.deb .

    
Arindom 04.05.2011, 17:38
108

Sie können gdebi-core installieren, das ist 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, die nicht über eine Befehlszeile verfügen.

Um ein Deb-Paket mit gdebi zu installieren, führen Sie einfach:

sudo gdebi my_package_1.0.deb
    
Andrew Gunnerson 04.05.2011 16:47
35

Gdebi

gdebi installiert ein Deb-Paket und seine Abhängigkeiten. Um es zu benutzen, lauf:

sudo gdebi package.deb

In neueren Versionen von Ubuntu wird dies nicht standardmäßig installiert, daher müssen Sie es aus den Repositories installieren.

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

gdebi ist die Befehlszeile, die dem gleichnamigen grafischen Werkzeug entspricht, das standardmäßig in Ubuntu enthalten war. Der Befehl für das grafische Werkzeug ist gdebi-gtk und hat ähnliche Funktionen:

    
dv3500ea 04.05.2011 18:56
25

beginnend mit 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 die Veröffentlichung

    
textshell 05.07.2016 11:23
18

läuft

sudo apt-get install -f

nach der Installation von Paket mit dpkg kann gebrochene Abhängigkeiten lösen (zumindest Mann apt-get sagen so ...). Ich werde aktualisieren, wenn ich es überprüfen werde.

    
Denwerko 04.05.2011 15:17
9

dpkg hat keine Abhängigkeitsunterstützung. Es gibt einen Weg darum, aber das würde erfordern, dass Sie eine lokale Datenbank erstellen (und somit würden Sie bereits die Abhängigkeiten kennen) und es wird als veraltet betrachtet (...).

Muss es eine Befehlszeile sein? (Server-Installation?) Wenn ja, schauen Sie sich auch apt-get -f an, aber seien Sie vorsichtig: Wenn Sie Abhängigkeiten nach der Installation lösen, kann das ein defektes System zur Folge haben.

gdebi (gui frontend) war früher in der Lage dies zu tun, wurde aber durch USC ersetzt.

Wie haben Sie das .deb heruntergeladen? Einige der neuen 11.04-Features sind die Handhabung von .deb, die von einer Website heruntergeladen werden: Es wird in USC geöffnet, so dass Abhängigkeiten vom Installer gelöst werden.

BEARBEITEN basierend auf Kommentar von Andrew: sudo gdebi foo-1.2.3.deb würde den Trick machen!

    
Rinzwind 04.05.2011 15:32
3

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

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

    
Henrique 10.05.2011 09:55
3

Sie könnten eine Datei dpkg-dep-inst mit dem folgenden Inhalt erstellen.

#!/bin/bash

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

Ich nehme an, Sie haben die Datei in Ihrem Home-Ordner erstellt. Mach es mit chmod +x dpkg-dep-inst ausführbar und verschiebe es in /usr/local/bin mit sudo cp dpkg-dep-inst /usr/local/bin .

Nun können Sie das debian-Paket mit Abhängigkeiten automatisch mit:

installieren
sudo dpkg-dep-inst foo-1.2.3.deb
    
BuZZ-dEE 28.01.2013 17:01
1

Ich bin gerade auf dieses Problem gestoßen. Wenn Sie apt-get install -f aufrufen, wird nicht empfohlene Abhängigkeiten installiert. Die einzige Problemumgehung dafür wäre dann, 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
    
Alex Kläser 10.02.2016 16:19
0

Tatsächlich lautet die Antwort, dass dpkg package manager Abhängigkeiten nicht sofort installieren kann. Sie cam man dpkg und haben das herausgefunden. Sie müssen also Tools wie apt , apt-get , aptitude , ... basierend auf dpkg verwenden.

Ich würde sagen, dass der gleiche Fall für den Paketmanager rpm 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, die Sie yum , urpmi , up2date verwenden, basieren alle auf RPM.

Wie bereits erwähnt, besteht die Gefahr, dass Pakete mit dpkg direkt installiert werden, da die Auflösung der Auflösung späterer Probleme zu einem Systemabsturz führen kann, wie @Rinzwind umrissen hat.

    
prosti 16.08.2018 21:05

Tags und Links