Ubuntuにインストールされているパッケージをスキャンしてバージョンとともに取得する

Ubuntuにインストールされているパッケージをスキャンしてバージョンとともに取得する

Ubuntuにインストールされているパッケージのリストとパッケージのバージョンを取得するPythonコードはありますか?私はPythonコードを手動でインストールされたパッケージのリストを生成し、個々のパッケージを照会するしかし、バージョン ID のリストがありません。インストールされているパッケージのバージョンを取得する方法を知っている人はいますか?

答え1

そのための既存のコードがあるかどうかはわかりません。ただし、ファイル を参照することはできます/var/lib/dpkg/status。インストールされたパッケージに関するすべての情報は、このファイルに保存されます。

このファイルを解析するコードを書くのは、Python に詳しくない場合でも非常に簡単です。

答え2

これを askubuntu に移行すべきかどうかはわかりませんが、前述のスレッドと同じアプローチを使用してください。dpkg/dpkg-query を実行してすべてのデータのダンプを取得し、標準の Python 解析メカニズムを使用して関連情報を抽出します。

もちろん、すでにフォークしているので、すべてのテキスト加工を bash 自体で行うことができます。

あるいは、バージョンが含まれている状態ファイルがあればそれを探します (「Dir::Etc::Status」など)。このアプローチが最もクリーンです。

答え3

aptitudeに-F( )オプションを渡す--format表示するフィールドを指定する

aptitude --disable-columns -F '%p %v' search '~A'

Python からは、パッケージapt_pkgのモジュールを使用しますpython-apt

関連情報