it-swarm.dev

Jak mi dovolit `dpkg -i` nainstalovat závislosti?

Řekni, mám foo-1.2.3.deb které závisí na Perl a python, ale spuštěním příkazu:

dpkg -i ./foo-1.2.3.deb

nenainstaluje tyto závislosti. Takže musím apt-get install Perl python ručně.

Jak udělat dpkg -i nainstalovat tyto závislosti pro mě automaticky?

358
Xiè Jìléi

Po použití dpkg mi následující příkaz pomohl nainstalovat požadované závislosti:

Sudo apt-get -f install

Váš terminál by měl vypadat takto:

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

Všimněte si řádku o Setting up package_with_unsatisfied_dependencies. Toto opraví (a dokončí) instalaci package_with_unsatisfied_dependencies.deb.

450
Arindom

Můžete nainstalovat gdebi-core, což je verze příkazového řádku instalačního programu balíčku GDebi od 10.04 a starší. V novějších verzích Ubuntu se Software Center používá k instalaci debs, které nemají ekvivalent příkazového řádku.

Chcete-li nainstalovat deb balíček pomocí gdebi, stačí spustit:

Sudo gdebi my_package_1.0.deb
112

začínající apt 1.1 (k dispozici v Xenial (16.04), stretch) apt install také umožňuje místní soubory:

Sudo apt install ./foo-1.2.3.deb

Mnohem jednodušší a čistší.

Viz oznámení o vydání

81
textshell

Gdebi

gdebi nainstaluje deb balíček a jeho závislosti. Chcete-li jej použít, spusťte:

Sudo gdebi package.deb

V novějších verzích Ubuntu to není ve výchozím nastavení nainstalováno, takže ho budete muset nainstalovat z úložišť.

Viz man gdebi pro úplný seznam možností.

gdebi je příkazový řádek ekvivalentní grafickému nástroji se stejným názvem, který byl ve výchozím nastavení součástí Ubuntu. Příkaz pro grafický nástroj je gdebi-gtk a má podobnou funkčnost:

gdebi-gtk

40
dv3500ea

běh

Sudo apt-get install -f

po instalaci balíčku s dpkg může vyřešit zlomené závislosti (alespoň člověk apt-get řekni tak ...). Budu aktualizovat, když to zkontroluji.

21
Denwerko

dpkg nemá podporu závislosti. Existuje způsob, jak to obejít, ale to by vyžadovalo, abyste si vytvořili lokální databázi (a tak byste již znali závislosti) a je považován za zastaralý (...).

Musí to být příkazový řádek? (instalace serveru?) Pokud ano, podívejte se také na apt-get -f ale buďte opatrní: řešení závislostí po instalaci může vést k poškození systému.

gdebi (frontend gui) to dokázal, ale byl nahrazen USC.

Jak jste stáhli .deb. Některé z nových funkcí 11.04 je manipulace s .deb staženým z webové stránky: získává opend v USC, takže závislosti bude vyřešen instalační technik.

EDIT na základě komentáře od andrew: Sudo gdebi foo-1.2.3.deb by udělal trik !!

10
Rinzwind

Mohli byste vytvořit soubor dpkg-dep-inst s následujícím obsahem.

#!/bin/bash

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

Předpokládám, že jste soubor vytvořili ve své domovské složce. Umožněte jej spustit pomocí chmod +x dpkg-dep-inst a přesuňte jej na /usr/local/bin s Sudo cp dpkg-dep-inst /usr/local/bin.

Nyní můžete balíček debian nainstalovat se závislostmi automaticky pomocí:

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

Jako alternativa k gdebi-gtk můžete použít softwarové centrum Ubuntu.

Poklepejte na balíček a mělo by být k dispozici tlačítko pro instalaci.

3
Henrique

Právě jsem narazil na tento problém. Volání apt-get install -f bude ne instalace doporučené závislosti, ačkoli! Jediným řešením by bylo vytvoření místního úložiště a přidání do /etc/apt/sources.list, tj.:

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

Ve skutečnosti je odpovědí, že správce balíčků dpkg nemůže nainstalovat závislosti z krabice. Vačka man dpkg a zjistili jsme to. Musíte tedy použít nástroje jako apt, apt-get, aptitude, ..., na základě dpkg.

Řekl bych, že stejný případ platí i pro správce balíčků rpm na druhé polokouli Linuxu. rmp není určen k provádění instalací založených na závislosti. Může instalovat jednotlivé balíčky a pro instalaci závislostí používáte yum, urpmi, up2date všechny jsou založeny na RPM.

Jak již bylo uvedeno, existuje mírné nebezpečí instalace balíčků přímo s programem dpkg, protože pozdější řešení rozlišení závislostí může skončit poškozeným systémem, jak je naznačeno @Rinzwind.

0
prosti