dpkg -p 不適用於某些軟體包(如 vim)
我正在為 LPIC 考試而學習,實驗室的任務之一是查找有關 package with 的詳細資訊
dpkg -p
,特別是有關vim with 的詳細資訊dpkg -p vim
。在解決方案中,該命令生成有關包的資訊,但我的輸出是:root@home:~# dpkg -p vim dpkg-query: package 'vim' is not available Use dpkg --info (= dpkg-deb --info) to examine archive files, and dpkg --contents (= dpkg-deb --contents) to list their contents.
Vim已安裝,我正在使用它,它也可以在系統上找到
root@home:~# type vim vim is hashed (/usr/bin/vim) root@home:~# which vim /usr/bin/vim
我認為
dpkg -p
它以某種方式損壞了,但它可以與其他軟體包一起使用(我嘗試了幾個,它們都執行良好):root@home:~# dpkg -p eject Package: eject Priority: important Section: utils Installed-Size: 160 Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Bugs: https://bugs.launchpad.net/ubuntu/+filebug ...
我的系統(VPS)資訊是
Ubuntu 18.04.5 LTS Linux 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
為什麼我不能重現課程中的解決方案?謝謝!
在遙遠的時間裡,
dpkg
它不是被apt
尚不存在的,而是被其他前端使用,比如dselect
. 這些工具負責更新以文件結尾的可用軟體包列表,/var/lib/dpkg/available
例如在執行時dselect update
。dpkg -p
的功能取決於最新的可用列表文件。今天並非總是如此。
apt
根本不在乎/var/lib/dpkg/available
。可能還有其他(可能是 GUI)工具仍會以某種方式更新此文件,因此/var/lib/dpkg/available
可能會部分填充。
dpkg
(or )的聯機幫助頁dpkg-query
告訴我們:
-p
,--print-avail
包名…顯示有關包名稱的詳細資訊,如
/var/lib/dpkg/available
. 基於 APT 的前端的使用者應該apt-cache show package-name
使用.還有:
--update-avail
$$ Packages-file $$
--merge-avail
$$ Packages-file $$ 更新dpkg和dselect的關於哪些包可用的想法。通過 action--merge-avail
,舊資訊與 Packages-file 中的資訊相結合。使用 action--update-avail
,舊資訊將替換為 Packages 文件中的資訊。與 Debian 一起發布的 Packages 文件簡稱為 «Packages»。如果 Packages-file 參數失去或命名為«-»,那麼它將從標準輸入中讀取(從 dpkg 1.17.7 開始)。dpkg將可用軟體包的記錄保存在/var/lib/dpkg/available
.您可以使用
apt-cache dumpavail
即時生成可用的文件格式輸出:
dumpavail
dumpavail 將可用列表列印到標準輸出。這適用於 dpkg(1) 並由 dselect(1) 方法使用。並合併結果(此範例未在 Ubuntu 上執行):
# apt-cache dumpavail | dpkg --merge-avail - Updating available packages info, using -. Information about 119859 packages was updated.
dpkg -p vim
現在可以工作了,但直接使用apt-cache show vim
或apt show vim
.結論:一些 LPIC 問題可能已經過時,但要獲得考試,您必須學習在任何地方都不再使用的特定考試內容。