Dnf

如何從安裝的 dnf 列表中獲取可解析的輸出?

  • September 24, 2021

dnf list installed輸出是人類可讀的,但對機器解析器不是很友好。是否有命令允許我們以 json 或 csv 或其他解析器友好格式獲取已安裝的包?dnf 是否有 python 綁定提供更好的界面?

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())

引用自:https://unix.stackexchange.com/questions/670428