"dpkg -l "*"" はどこから情報を収集しますか?

私が知る限り、dpkg -l "*"利用可能なすべてのパッケージは、状態に関係なくDebianの下にリストされています。この情報はどこから来るか。/var/lib/dpkg/availableインストールされているすべてのパッケージ(ステータス)が一覧表示されていることを知っていますが、他のすべてのパッケージに関する情報はiiどこで入手できますか?dpkg

ベストアンサー1

これらを確認する方法は、の制御下でユーティリティを実行することですstrace。たとえば、次のようになります。

$ strace -o /tmp/dpkg-strace.out dpkg -l '*'

straceシステムコールのすべての使用が追跡されるため、どのファイルにアクセスしたかを簡単に確認できます。システムコールの出力ファイルをgrepしますopen。経験により、この場合、関連するストレスラインが次のようになることがすぐにわかります。

open("/var/lib/dpkg/status", O_RDONLY)  = 3

したがって、/var/lib/dpkg/statusファイルはdpkgそのファイルから情報を取得します。デフォルトではRFC2822に準拠した形式のプレーンテキストファイルであるため、lessまたは同様のコマンドを使用して表示できます。

おすすめ記事