web-dev-qa-db-ja.com

dpkgでインストールする前に依存関係を確認し、ダウンロードスクリプトを生成する

オフラインインストール用にdpkg -i *.debコマンドでパッケージをインストールしていました。すべてのdebファイルは1つのフォルダーにあるためです。

依存関係エラーを回避にし、パッケージをbrokenとしてインストールを停止します。

最終的に、私の目的は、上記のフォルダーにないパッケージのみの依存関係を確認し、ダウンロードスクリプトを生成することです(すべての依存関係が満たされない場合)。最初に不足しているパッケージをダウンロードし、dpkg -i *.debで自信を持ってパッケージをインストールできるように

apt-cache showpkg $(find -iname '*.deb' -exec dpkg --info '{}' \; | awk '/Package:/ {print $2}')は依存関係を示しますが、長いリストであり、チェックするのに役立ちません言及されたフォルダーに満足する(存在する)かどうかかどうか。また、次のdpkg -I *.debエラー:

   dpkg-deb: 'cabextract_1.4-4_i386.deb' contains no control component 'chromium-codecs-ffmpeg-extra_34.0.1847.116-0ubuntu2_i386.deb'
   dpkg-deb: 'cabextract_1.4-4_i386.deb' contains no control component 'flashplugin-installer_11.2.202.350ubuntu1_i386.deb'
..
..
so on for each deb

したがって、そのコマンドは役に立たない。

さらなる解明:

  1. まず、フォルダー内のすべてのdeb依存関係を確認します。
  2. すでにインストールされているパッケージに応じて、このデバッグが依存関係エラーなしでインストールできるかどうかを確認してください。
  3. はいの場合、dpkg -i *.debを実行します
  4. それ以外の場合は、不足しているパッケージをリストしますインストールされていないか、言及されたフォルダにない

ありがとう。

3
Pandya

インストールの前にいつでも dry run を試すことができます。

dpkg --dry-run -i *.deb
4
Elliott Frisch

パッケージの依存関係のリストを取得するには:

find *deb -exec dpkg -f {} Depends \;
2
Sylvain Pineau

これらのいずれかを試すこともできます

 dpkg -I package
 apt-cache rdepends package.deb
 apt-cache showpkg package-name

これは、単に.debファイルである場合の手順の組み合わせです

 ar -x <package-name>.deb
 tar -xzf control.tar.gz
 grep Depends control

または

 apt-cache depends package-name

例えば

 apt-cache depends mplayer

しかし、私は最後の選択肢があなたに最も役立つかもしれないものだと思います

1
Olu Smith