掃描並取得 Ubuntu 上安裝的軟體包以及版本

掃描並取得 Ubuntu 上安裝的軟體包以及版本

有沒有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

相關內容