コマンドを使用せずに、またはdpkg.logを確認せずに、Ubuntu/Debianにインストールされているパッケージのリストを抽出する必要がありますか?
基本的な要件は、パッケージdbファイルからDebian/Ubuntu OSにインストールされているパッケージのリストを取得することです(存在する場合)次のファイルから利用可能なパッケージのリストを取得できます。
/var/lib/dpkg/available
ただし、このファイルには、インストールされていないものを含むすべてのパッケージが含まれています。
Debian/Ubuntuには、インストール済みパッケージのみのリストを含む他のdbファイルはありますか?
dpkg -l
コマンドで提供される情報と同じ情報を含むファイルは/var/lib/dpkg/status
です。 man dpkg
のFILES
セクションから:
/var/lib/dpkg/status Statuses of available packages. This file contains information about whether a package is marked for removing or not, whether it is installed or not, etc. See section INFORMATION ABOUT PACKAGES for more info. The status file is backed up daily in /var/backups. It can be useful if it's lost or corrupted due to filesystems troubles. The format and contents of a binary package are described in deb(5).
ただし、コマンドを作成して解析する必要があるため、「コマンドなし」の要件はほとんど意味がありません。例えば
awk -vRS= '/Status: install/ {print $2}' /var/lib/dpkg/status
dpkg -l | awk '$1 == "ii" {print $2}'
とほぼ同じになります(ソート順序と、:AMD64
などのいくつかの可能なアーキテクチャサフィックスが異なります)。