Dpkg
dpkg-query 輸出的第一列中的“ii”是什麼意思?
我執行
dpkg-query -l libgtk2.0-0 libgtk-3-0
以找出這些包的版本,並得到以下輸出。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 Architecture Description +++-==========================-==================-==================-========================================================== ii libgtk-3-0:amd64 3.22.30-1ubuntu1 amd64 GTK+ graphical user interface library ii libgtk2.0-0:amd64 2.24.32-1ubuntu1 amd64 GTK+ graphical user interface library
從
man dpkg-query
我得到以下第一列的描述。輸出的前三列按順序顯示所需的操作、包狀態和錯誤。
Desired action: u = Unknown i = Install h = Hold r = Remove p = Purge Package status: n = Not-installed c = Config-files H = Half-installed U = Unpacked F = Half-configured W = Triggers-awaiting t = Triggers-pending i = Installed Error flags: <empty> = (none) R = Reinst-required
從該描述來看,ii意味著所需的操作是安裝並且該軟體包已安裝。這讓我感到困惑,因為我希望如果已經安裝了軟體包,我不需要採取任何行動。
該輸出到底告訴我什麼?我需要更新軟體包,還是已經更新?
正如你所說,
根據該描述,ii意味著所需的操作是安裝,但已安裝包。
這意味著包的期望狀態是“已安裝”,並且包的目前狀態是“已安裝”。由於兩者都匹配,因此無需更改。action 列沒有指定你需要採取的行動,它指定了打包系統應該採取的行動——實際上,這表明你已經要求打包系統直接或間接地安裝這些包(通過依賴項) .
它沒有說明包是否是最新的;你需要看看輸出
apt policy libgtk2.0-0 libgtk-3-0
來確定。
dpkg-query
僅查看 中的本地包數據庫/var/lib/dpkg/status
,因此不知道其他包版本。APT 是處理包儲存庫並知道哪些版本的包可用(以及安裝的候選者)的工具。