これは次のようになります。APTパッケージでインストールされているすべてのファイルを一覧表示するには?しかし、どのファイルがあるのか知りたいです。〜するまだパッケージがインストールされていないため、インストールが必要です。
例:APTパッケージがインストールするすべてのファイルを一覧表示したいですxorg
。つまり、私が入力している間に作成できるすべてのファイルですapt install xorg
。ただし、その依存関係の直接ファイルではなく - のみが一覧表示されますapt-file
。xorg
$ apt-file list xorg
xorg: /usr/share/bug/xorg/script
xorg: /usr/share/doc/xorg/changelog.gz
xorg: /usr/share/doc/xorg/copyright
xorg: /usr/share/lintian/overrides/xorg
どのようにリストを上げることができますか?みんな関連文書?
(答えとして不都合なパイプの組み合わせを追加しますbash
。それが私が今使っているものですが、呼び出しが多いループに過ぎないのでapt-file
非常に遅いです。より良い答えを探しています。)
答え1
apt-file list
以下を使用して、一度に処理するパッケージのリストを提供できます。
apt-file -f-
(標準入力から読み取る)。私の測定結果
apt-get -s install xorg | awk '/^Inst / { print $2 }' | apt-file -f- list
ループを使用するのと同じプロセスよりも2倍以上高速ですapt-file
(使用)xargs
。
sort -k2,2
関連パッケージを見るのが楽しかったので後処理しました。
apt-get -s install
後処理の代わりに使用すると、apt-cache depends xorg
システムにインストールされているすべてのパッケージが考慮され、再帰依存関係を含むそのパッケージのみが考慮されます。直接の依存関係apt-cache depends xorg
のみxorg
が表示され、後処理では代替を処理しません。
答え2
これが私が今使っているものですが、問題がある可能性があり、確かにパフォーマンスがあまり良くありません。
apt-cache depends xorg | grep '..\(Depends\|Recommends\): [^<]' | sed 's/[^:]*: //' | while read LINE; do [[ -z "$LINE" ]] || apt-file list "$LINE"; done | sed 's/[^:]*: //' | sort
ステップバイステップ:
インストールするパッケージのリストを取得します。
apt-cache depends xorg
「次に異なる」と「推奨」項目を選択します。
grep '..\(Depends\|Recommends\): [^<]'
パッケージ名を除くすべての項目を削除します。
sed 's/[^:]*: //'
行が空でない場合は、apt-file
各パッケージ名で実行します。
while read LINE; do [[ -z "$LINE" ]] || apt-file list "$LINE"; done
apt-file list
ファイルの対応するパッケージ名で始まる各行を返します。ファイル名のみを残し、その行からパッケージ名を削除します。
sed 's/[^:]*: //'
行の並べ替え:
sort