foo-1.2.3.deb
はPerl
とpython
に依存していますが、次のコマンドを実行しています:
dpkg -i ./foo-1.2.3.deb
これらの依存関係はインストールされません。だから私は手でapt-get install Perl python
しなければなりません。
これらの依存関係を自動的にdpkg -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
のインストールです。
gdebi-core
をインストールできます。これは、10.04以前のGDebiパッケージインストーラーのコマンドラインバージョンです。 Ubuntuの新しいバージョンでは、ソフトウェアセンターを使用してdebsをインストールします。debsには同等のコマンドラインがありません。
Gdebiを使用してdebパッケージをインストールするには、次を実行します。
Sudo gdebi my_package_1.0.deb
apt 1.1(Xenial(16.04)で利用可能、stretch)からapt install
はローカルファイルも許可します:
Sudo apt install ./foo-1.2.3.deb
とてもシンプルでクリーン。
リリースアナウンスメント を参照してください
ランニング
Sudo apt-get install -f
dpkgでパッケージをインストールすると、壊れた依存関係が解決される場合があります(少なくともman apt-get say so ...)。確認したら更新します。
dpkgは依存関係をサポートしていません。回避方法はありますが、ローカルデータベースを作成する必要があり(したがって、既に依存関係を知っているはずです)、廃止されたと見なされます(...)。
コマンドラインにする必要がありますか? (サーバーのインストール?)もしそうならapt-get -f
を見てくださいが、注意してください:インストール後に依存関係を解決すると、システムが壊れる可能性があります。
gdebi (guiフロントエンド)はこれを行うことができましたが、USCに置き換えられました。
.debをダウンロードした方法。新しい11.04機能の一部は、Webサイトからダウンロードされた.debの処理です。USCで開かれるため、インストーラーによって依存関係が解決されます。
アンドリューによるコメントに基づいた編集:Sudo gdebi foo-1.2.3.deb
がトリックを行います!!
次の内容のファイルdpkg-dep-inst
を作成できます。
#!/bin/bash
DEBIAN_FILE1=$1
dpkg -i $DEBIAN_FILE1 || apt-get --fix-broken install
ホームフォルダーにファイルを作成したと仮定します。 chmod +x dpkg-dep-inst
で実行可能にし、/usr/local/bin
でSudo cp dpkg-dep-inst /usr/local/bin
に移動します。
これで、依存関係を持つdebianパッケージを自動的にインストールできます:
Sudo dpkg-dep-inst foo-1.2.3.deb
gdebi-gtk
の代替として、Ubuntu Software Centerを使用できます。
パッケージをダブルクリックすると、インストールボタンが使用可能になります。
私はちょうどこの問題に出くわしました。 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
実際、dpkg
パッケージマネージャーは、すぐに依存関係をインストールすることはできません。あなたはman dpkg
をカムし、それを見つけました。したがって、apt
に基づいて、aptitude
、apt-get
、dpkg
、...などのツールを使用する必要があります。
他のLinux半球のrpm
パッケージマネージャーについても同じことが言えます。 rmp
は、依存関係ベースのインストールを行うためのものではありません。単一のパッケージをインストールでき、依存関係をインストールするためにyum
、urpmi
、up2date
を使用します。これらはすべてRPMに基づいています。
前述のように、dpkg
を使用してパッケージを直接インストールすると、@ Rinzwindに概説されているように、後の依存関係の解決でシステムが破損する可能性があるため、わずかな危険があります。