一窺你安裝的 Linux 軟體包
你有沒有想過你的 Linux 系統上安裝了幾千個軟體包? 是的,我說的是「千」。 即使是相當一般的 Linux 系統也可能安裝了上千個軟體包。 有很多方法可以獲得這些包到底是什麼包的詳細信息。
首先,要在基於 Debian 的發行版(如 Ubuntu)上快速得到已安裝的軟體包數量,請使用 apt list --installed
, 如下:
$ apt list --installed | wc -l
2067
這個數字實際上多了一個,因為輸出中包含了 「Listing …」 作為它的第一行。 這個命令會更準確:
$ apt list --installed | grep -v "^Listing" | wc -l
2066
要獲得所有這些包的詳細信息,請按以下方式瀏覽列表:
$ apt list --installed | more
Listing...
a11y-profile-manager-indicator/xenial,now 0.1.10-0ubuntu3 amd64 [installed]
account-plugin-aim/xenial,now 3.12.11-0ubuntu3 amd64 [installed]
account-plugin-facebook/xenial,xenial,now 0.12+16.04.20160126-0ubuntu1 all [installed]
account-plugin-flickr/xenial,xenial,now 0.12+16.04.20160126-0ubuntu1 all [installed]
account-plugin-google/xenial,xenial,now 0.12+16.04.20160126-0ubuntu1 all [installed]
account-plugin-jabber/xenial,now 3.12.11-0ubuntu3 amd64 [installed]
account-plugin-salut/xenial,now 3.12.11-0ubuntu3 amd64 [installed]
這需要觀察很多細節 —— 特別是讓你的眼睛在所有 2000 多個文件中徘徊。 它包含包名稱、版本等,以及更多但並不是以最易於我們人類解析的顯示信息。 dpkg-query
使得描述更容易理解,但這些描述會塞滿你的命令窗口,除非窗口非常寬。 因此,為了讓此篇文章更容易閱讀,下面的數據顯示已經分成了左右兩側。
左側:
$ dpkg-query -l | more
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version
+++-==============================================-=================================-
ii a11y-profile-manager-indicator 0.1.10-0ubuntu3
ii account-plugin-aim 3.12.11-0ubuntu3
ii account-plugin-facebook 0.12+16.04.20160126-0ubuntu1
ii account-plugin-flickr 0.12+16.04.20160126-0ubuntu1
ii account-plugin-google 0.12+16.04.20160126-0ubuntu1
ii account-plugin-jabber 3.12.11-0ubuntu3
ii account-plugin-salut 3.12.11-0ubuntu3
ii account-plugin-twitter 0.12+16.04.20160126-0ubuntu1
rc account-plugin-windows-live 0.11+14.04.20140409.1-0ubuntu2
右側:
Architecture Description
============-=====================================================================
amd64 Accessibility Profile Manager - Unity desktop indicator
amd64 Messaging account plugin for AIM
all GNOME Control Center account plugin for single signon - facebook
all GNOME Control Center account plugin for single signon - flickr
all GNOME Control Center account plugin for single signon
amd64 Messaging account plugin for Jabber/XMPP
amd64 Messaging account plugin for Local XMPP (Salut)
all GNOME Control Center account plugin for single signon - twitter
all GNOME Control Center account plugin for single signon - windows live
每行開頭的 ii
和 rc
名稱(見上文「左側」)是包狀態指示符。 第一個字母表示包的預期狀態:
u
– 未知i
– 安裝r
– 移除/反安裝p
– 清除(也包括配置文件)h
– 保留
第二個代表包的當前狀態:
n
– 未安裝i
– 已安裝c
– 配置文件(只安裝了配置文件)U
– 未打包F
– 半配置(出於某些原因配置失敗)h
– 半安裝(出於某些原因配置失敗)W
– 等待觸發(該包等待另外一個包的觸發器)t
– 待定觸發(該包被觸發)
在通常的雙字元欄位末尾添加的 R
表示需要重新安裝。 你可能永遠不會碰到這些。
快速查看整體包狀態的一種簡單方法是計算在不同狀態中包含的包的數量:
$ dpkg-query -l | tail -n +6 | awk '{print $1}' | sort | uniq -c
2066 ii
134 rc
我從上面的 dpkg-query
輸出中排除了前五行,因為這些是標題行,會混淆輸出。
這兩行基本上告訴我們,在這個系統上,應該安裝了 2066 個軟體包,而 134 個其他的軟體包已被刪除,但留下了配置文件。 你始終可以使用以下命令刪除程序包的剩餘配置文件:
$ sudo dpkg --purge xfont-mathml
請注意,如果程序包二進位文件和配置文件都已經安裝了,則上面的命令將兩者都刪除。
via: https://www.networkworld.com/article/3242808/linux/peeking-into-your-linux-packages.html
作者:Sandra Henry-Stocker 譯者:Flowsnow 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive