web-dev-qa-db-ja.com

「dpkg -i」に依存関係をインストールさせるにはどうすればよいですか?

foo-1.2.3.debPerlpythonに依存していますが、次のコマンドを実行しています:

dpkg -i ./foo-1.2.3.deb

これらの依存関係はインストールされません。だから私は手でapt-get install Perl pythonしなければなりません。

これらの依存関係を自動的にdpkg -iインストールする方法は?

318
Xiè Jìléi

dpkgを使用した後、次のコマンドを実行すると、必要な依存関係をインストールできました。

Sudo apt-get -f install

全体として、端末は次のようになります。

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

通知Setting up package_with_unsatisfied_dependenciesに関する行。これは、 修正 (および完了)package_with_unsatisfied_dependencies.debのインストールです。

409
Arindom

gdebi-coreをインストールできます。これは、10.04以前のGDebiパッケージインストーラーのコマンドラインバージョンです。 Ubuntuの新しいバージョンでは、ソフトウェアセンターを使用してdebsをインストールします。debsには同等のコマンドラインがありません。

Gdebiを使用してdebパッケージをインストールするには、次を実行します。

Sudo gdebi my_package_1.0.deb
111

apt 1.1(Xenial(16.04)で利用可能、stretch)からapt installはローカルファイルも許可します:

Sudo apt install ./foo-1.2.3.deb

とてもシンプルでクリーン。

リリースアナウンスメント を参照してください

59
textshell

Gdebi

gdebiは、debパッケージとその依存関係をインストールします。使用するには、次を実行します。

Sudo gdebi package.deb

Ubuntuの新しいバージョンでは、これはデフォルトではインストールされないため、リポジトリからインストールする必要があります。

オプションの完全なリストについては、 man gdebi を参照してください。

gdebiは、Ubuntuにデフォルトで含まれていた同じ名前のグラフィカルツールに相当するコマンドラインです。グラフィカルツールのコマンドはgdebi-gtkで、同様の機能があります。

gdebi-gtk

38
dv3500ea

ランニング

Sudo apt-get install -f

dpkgでパッケージをインストールすると、壊れた依存関係が解決される場合があります(少なくともman apt-get say so ...)。確認したら更新します。

21
Denwerko

dpkgは依存関係をサポートしていません。回避方法はありますが、ローカルデータベースを作成する必要があり(したがって、既に依存関係を知っているはずです)、廃止されたと見なされます(...)。

コマンドラインにする必要がありますか? (サーバーのインストール?)もしそうならapt-get -fを見てくださいが、注意してください:インストール後に依存関係を解決すると、システムが壊れる可能性があります。

gdebi (guiフロントエンド)はこれを行うことができましたが、USCに置き換えられました。

.debをダウンロードした方法。新しい11.04機能の一部は、Webサイトからダウンロードされた.debの処理です。USCで開かれるため、インストーラーによって依存関係が解決されます。

アンドリューによるコメントに基づいた編集:Sudo gdebi foo-1.2.3.debがトリックを行います!!

9
Rinzwind

次の内容のファイルdpkg-dep-instを作成できます。

#!/bin/bash

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

ホームフォルダーにファイルを作成したと仮定します。 chmod +x dpkg-dep-instで実行可能にし、/usr/local/binSudo cp dpkg-dep-inst /usr/local/binに移動します。

これで、依存関係を持つdebianパッケージを自動的にインストールできます:

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

gdebi-gtkの代替として、Ubuntu Software Centerを使用できます。

パッケージをダブルクリックすると、インストールボタンが使用可能になります。

3
Henrique

私はちょうどこの問題に出くわしました。 apt-get install -fを呼び出すとnot installrecommendedの依存関係があります!この場合の唯一の回避策は、ローカルリポジトリを作成して/etc/apt/sources.listに追加することです。つまり:

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

実際、dpkgパッケージマネージャーは、すぐに依存関係をインストールすることはできません。あなたはman dpkgをカムし、それを見つけました。したがって、aptに基づいて、aptitudeapt-getdpkg、...などのツールを使用する必要があります。

他のLinux半球のrpmパッケージマネージャーについても同じことが言えます。 rmpは、依存関係ベースのインストールを行うためのものではありません。単一のパッケージをインストールでき、依存関係をインストールするためにyumurpmiup2dateを使用します。これらはすべてRPMに基づいています。

前述のように、dpkgを使用してパッケージを直接インストールすると、@ Rinzwindに概説されているように、後の依存関係の解決でシステムが破損する可能性があるため、わずかな危険があります。

0
prosti