web-dev-qa-db-ja.com

debパッケージの依存関係リストを確認する方法

Debパッケージの依存関係リストを確認するにはどうすればよいですか。 Ubuntu 11.10を実行していますが、var/cache/apt/archivesからすべてのdebパッケージをバックアップしました。 PCをフォーマットし、選択したアプリケーションのみを再インストールします。また、インストールされているパッケージと依存関係のリストを取得する方法もあります。

91
Vikramjeet

dpkgメソッドに加えて、リポジトリ内のパッケージの依存関係を確認できます。

apt-cache depends package-name

EDIT @Tinoの推奨で更新されました。 @Tigranのコメントは適用されなくなりました。

69
Oxwivi

これにより、パッケージに関するすべての情報が表示されます。

dpkg -I package.deb
100
htorque

14.04以降の場合:

dpkgには-Iがなくなり、依存関係を含むパッケージ情報を表示するにはdpkg-debを使用する必要があります。

dpkg-deb -I package.deb
2
Rup Narayan

apt-cache depends [Package-Name]も機能します。ソースリストの外部から.debパッケージを入手した場合、apt-cache showpkg [Package-Name] && apt-cache depends [Package-Name]などの情報は古い情報を表示したり、実際にインストールされたパッケージと同期しない可能性があるため、その場合はdpkg -I [Package-Name]が最適です。

2

特定のパッケージバージョンの場合:

apt-cache show <package_name>=<version>

利用可能なバージョンを見つけるには: リポジトリ内のパッケージの利用可能なバージョンを確認するにはどうすればよいですか?

0
MisterZ

ここにいくつかのずさんなものがあり、おそらく依存関係項目をリストとして取得するためにdpkg -I出力に対して実行できる後処理をあまり網羅していないでしょう:

コンピューター用に凝縮

# dpkg -I package.deb | python -c "import sys, re; t=re.split(r'\n(?= ?[\w]+:)|:', sys.stdin.read()); print '\n'.join([i.strip() for i in {key.strip(): value.strip() for key, value in Zip(t[::2], t[1::2])}['Depends'].split(',')])"
#

人間向けに拡張:

dpkg -I package.deb | python -c "
    import sys, re;
    # Split keys and values into pairs (zipped together later)
    t=re.split(
        r'\n(?= ?[\w]+:)|:', 
        sys.stdin.read()
    ); 
    # Newline separate each dependency
    print '\n'.join([
        # Trim each dependency value
        i.strip() for i in {
            # Build assoc array from package metadata
            key.strip(): value.strip() 
            for key, value in Zip(t[::2], t[1::2])
        }['Depends'].split(',')
    ])
"
0
ThorSummoner