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())
答え2
JSON、CSV、または他のパーサーフレンドリーな形式でインストールされたパッケージをインポートするためのコマンドはありますか?
これは、例の後処理を使用して達成することもできます。
dnf list installed | tail -n +2 | awk -F '[.]' '{ print $1 }'
インストールされているすべてのパッケージの名前のリストのみを提供します。
以下を追加してJSON形式に変換できます。
| jq --raw-input . | jq --slurp .
ありがとう
その他の質問と回答