有沒有Python程式碼可以取得Ubuntu上安裝的軟體包清單以及軟體包的版本?我在以下位置看過Python程式碼產生手動安裝的包列表並查詢各個包。但它沒有版本 ID 的清單。有人知道如何取得已安裝軟體包的版本嗎?
答案1
我不確定是否有現有的程式碼。不過你可以看一下文件/var/lib/dpkg/status
。有關已安裝軟體包的所有資訊都儲存在此文件中。
即使您不太擅長 Python,編寫解析該檔案的程式碼也非常容易。
答案2
不確定這是否不應該遷移到askubuntu,但只需使用與上述線程中相同的方法即可。執行 dpkg/dpkg-query 來取得所有資料的轉儲,並使用標準 python 解析機制來擷取相關資訊。
當然,由於您已經進行了分叉,因此您可以在 bash 本身中進行所有文字修改。
或者,尋找包含版本的狀態檔案(如果有)(“Dir::Etc::Status”?)。這種方法是最乾淨的。
答案3
將-F
( --format
) 選項傳遞給 aptitude to指定顯示哪些字段。
aptitude --disable-columns -F '%p %v' search '~A'
在 Python 中,使用套件apt_pkg
中的模組python-apt
。