インストールされたdnfsのリストから解析可能な出力を取得するにはどうすればよいですか?

インストールされたdnfsのリストから解析可能な出力を取得するにはどうすればよいですか?

dnf list installed出力は人間が読むことができますが、マシンパーサーにはあまり慣れていません。 json、csv、または他のパーサーフレンドリーな形式でインストールされたパッケージをインポートするためのコマンドはありますか?より良いインターフェースを提供するdnf用のPythonバインディングはありますか?

ベストアンサー1

このrpmコマンドは、結果を印刷するためのより柔軟なオプションを提供します。インストールされたパッケージを一覧表示するには、フォーマットされたrpm --query --all出力を使用できます--queryformat

たとえば、利用可能なパッケージ名のみを印刷しますrpm -qa --queryformat "%{NAME}\n"。同様の構文を使用して出力をさらに指定し、printf利用rpm --querytags可能なすべての「変数」を印刷してrpmパッケージに関する情報を印刷できます。確認するrpm のマニュアルページより多くの情報を知りたいです。

はい、DNFにはPythonバインディングもあり、ドキュメントも提供されています。ここインストールされたパッケージを入手するには:

import dnf

base = dnf.Base()
base.fill_sack() 
q = base.sack.query() 
list(q.installed())

おすすめ記事