查找指定文件属于哪个软件包

SHELL2010-09-17 08:34

不知道有没有人发现,用apt-get source basename是不能下载basename的源码包的。
之所以这样,是因为它并不属于一个单独的软件包,那好,我们来说说如何下载类似basename和ls这样程序的源码包。

以前曾经写过一篇类似的文章,不过方法不太好,因为Ubuntu系列没有安装apt-file的包,至于其他的Linux发行版的情况,我就不是很清楚了。

下面的方法适合所有的Debian系列程序,终端命令是:
输入:dpkg -S basename |grep -w `which basename`
输出:coreutils: /usr/bin/basename

我来解释一下:
dpkg -S 的用处是 Find package(s) owning file(s)
grep -w 是用于强制匹配完整单词的
>which 是寻找指定包所在路径的命令
basename 就是你想要下载其源码的程序
coreutil 自然就是该程序所在的包的名字

所以,你想下载basename程序的源码,只需要apt-get source coreutils就可以了。


原文链接: http://blog.jtwo.me/find-the-specified-file-belongs-to-which-software-package