當前位置: 首頁>>技術教程>>正文


在Ubuntu/Debian中找到文件所屬的軟件包?

, , , ,

問題描述

在Ubuntu 8.04係統上工作時,我經常發現自己缺少程序,手冊頁或其他文件。有沒有一種簡單的方法來查找包含給定文件的軟件包(無論是否已安裝)?也許apt或dpkg有一些晦澀的選擇?

最佳辦法

apt-file search filename

要麽

apt-file search /path/to/file

要安裝apt-file,請使用:

sudo apt-get install apt-file

您需要先更新其數據庫,然後才能使用它:

sudo apt-file update

次佳辦法

(Debian/Ubuntu) Discover what package a file belongs to

dpkg -S /usr/bin/ls

‘dpkg -S’ just matches the string you supply it, so just using ‘ls’ as an argument matches any file from any package that has ‘ls’ anywhere in the filename. So usually it’s a good idea to use an absolute path. You can see in the second example that 12 thousand files that are known to dpkg match the bare string ‘ls’.

第三種辦法

我一直使用packages.debian.org來完成此任務。它優於apt-file,因為它也可以找到文件名的一部分。它還鏈接到主要軟件包列表,該列表將列出描述,錯誤等。總而言之,這是一個不錯的網站。在命令行上沒有那麽有用,但是仍然很有用。

為了提高速度,我將網址添加為書簽:

http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&arch=any

在Firefox中,並添加了”debfind”作為關鍵字(在書簽管理器中單擊”more”使其具有高亮顯示),因此我隻需鍵入“ debfind”即可。您可以將’suite’從不穩定更改為穩定,也可以根據需要針對其他版本的發行版進行測試。

第四種辦法

您也可以使用dlocate。從手冊頁;

$ dlocate [ PATTERN ]
List all records where either the package name or the filename matches PATTERN.

第五種辦法

我發現瓦吉格…

wajig whichpackage /path/to/file 

例如。

wajig whichpackage /etc/apt/sources.list

Wajig是一個方便的命令行或控製台工具,它包裝了您從不想學習的所有apt-get,dpkg優點。 。

要安裝wajig,請使用:

apt-get install wajig

該命令’whichpackage’本身取決於apt-file

您仍需要先更新其數據庫,然後才能使用它:-我尚不知道wajig update whixh是否執行apt-get更新也會更新文件緩存,但我希望可以。

sudo wajig update

sudo apt-file update

(還有“超級牛,複活節”嗎?!)

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/10642.html,未經允許,請勿轉載。