Dpkg

dpkg-query 輸出的第一列中的“ii”是什麼意思?

  • July 30, 2018

我執行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 是處理包儲存庫並知道哪些版本的包可用(以及安裝的候選者)的工具。

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