如何查找包含某个Perl模块的软件包。

我需要在我的Ubuntu电脑上安装一些CPAN模块。我想从deb包安装它,所以我需要找出哪个包含该模块。
有时候解决这个任务的方法非常简单。例如,如果我需要安装File::Find::Rule,我只需将名称转换为小写,将::更改为-,并在开头添加lib,在末尾添加-perl。结果就是包名libfile-find-rule-perl
$ apt-cache search libfile-find-rule-perl
libfile-find-rule-perl - module to search for files based on rules

但在其他情况下,这并不起作用。我想找到包含Debian::AptContents的deb软件包。但是apt-cache search libdebian-aptcontents-perl没有找到任何结果。
嗯,在Debian::AptContents的情况下,我知道它在dh-make-perl软件包中,但我想知道如何找到包含我所需模块的deb软件包。

你想只使用命令行来完成这个任务吗? - Radu Rădeanu
嗯,是的,我更喜欢使用命令行工具来解决这个问题。但如果有一些网站提供这方面的信息,我也很感兴趣。我不会使用基于Windows应用程序的解决方案(我的机器上没有X服务器),但我会欣赏任何类型的解决方案=) - bessarabov
3个回答

在Ubuntu中有一个名为apt-file的软件包搜索工具。您可以将文件名传递给它,它会显示包含该文件的软件包。它不仅搜索已安装在系统上的软件包,还搜索可供安装的软件包。
要查找包含Debian::AptContents的deb软件包,您应该运行以下命令:
$ apt-file search Debian/AptContents.pm
dh-make-perl: /usr/share/perl5/Debian/AptContents.pm


从控制台whereis PACKAGE_OR_COMMON_FILE:它会打印出系统文件的任何出现情况。
如果你有aptitude,使用:aptitude search PACKAGE_NAME。如果存在,请执行aptitude,使用search选项找到它,并按下ENTER以查看更多信息。
如果你需要关于模块的信息,请使用cpan -D module

Lorenzo,感谢你提供的cpan -D命令! - bessarabov
1如果你需要更多的帮助,随时问其他问题!;) - Lorenzo Ancora