Apt
如何使用 dpkg 獲取“提供”某些東西的軟體包列表?
我看到 dpkg 有一個包的“提供”欄位。
$ apt-cache show vim-tiny | grep Provides Provides: editor $
我怎麼知道哪些軟體包提供了即“編輯器”?
您可以通過使用來獲得所需的效果,而無需
aptitude
(這些天似乎不鼓勵)使用apt-cache showpkg
,其中包括Reverse Provides
. 通過一個小sed
腳本管道將擺脫其他事情:apt-cache showpkg <package> | sed '/Reverse Provides/,$!d'
一個更漂亮(但鍵入時間更長)的範例(僅列出包名稱,不列出版本,並按字母順序排序)可以通過以下方式實現
awk
:apt-cache showpkg httpd | awk '/Pa/, /Reverse P/ {next} {print $1 | "sort"}'
…並且可以通過管道
uniq
刪除重複項(由於反向提供的多個版本的包可能存在)。請注意,使用 對uniq
第一個版本沒有幫助,因為uniq
只有在它們位於相鄰行並且sed
版本不對輸出進行排序時才會刪除重複項。最後,可以定義一個更容易使用的函式,如下:
provides () { apt-cache showpkg $1 | awk '/Pa/, /Reverse P/ {next} {print $1 | "sort"}' | uniq;}
將其粘貼在 (for example)
.bashrc
中,以便在 shell 載入時載入,並且可以執行provides <package>
以獲取包的反向提供。