我发现安装本地Debian或Ubuntu Perl软件包通常比通过cpanm
“手动”安装Perl模块(特别是对于XS模块)更可靠和方便。有没有一个简单的方法来找到这些模块给出了所需的Perl模块列表?最方便的方法是Mapcpanfile,例如
requires 'XML::LibXSLT', '1.78';
到为不同目标平台提供模块的发行版和包的列表:
XML::LibXSLT, Ubuntu 13.04, libxml-libxslt-perl, 1.78
XML::LibXSLT, Ubuntu 13.10, libxml-libxslt-perl, 1.78
XML::LibXSLT, Ubuntu 14.04, libxml-libxslt-perl, 1.84
XML::LibXSLT, Debian squeeze, libxml-libxslt-perl, 1.70
XML::LibXSLT, Debian wheezy, libxml-libxslt-perl, 1.77
XML::LibXSLT, Debian jessie, libxml-libxslt-perl, 1.92
XML::LibXSLT, Debian sid, libxml-libxslt-perl, 1.92
P.S.:我想这些信息可以从每个发行版的软件包库中找到,例如。http://packages.ubuntu.com/和https://packages.debian.org,但是否有一个脚本解决方案已经这样做查找?
5条答案
按热度按时间i2byvkas1#
在基于Debian的系统上,安装
dh-make-perl
软件包,然后尝试在我的LMDE框中,它输出:
要将这个包名Map到其他Linux发行版,可以使用distromatch。它似乎还支持
Perl
(CPAN
)和Python
包名。不幸的是,distromatch
似乎没有维护,现在不能开箱即用。最近,我确实设法使它工作得足够好,将Debian翻译成openSUSE包名。3pvhb19x2#
很简单。只要用关键词搜索。它将列出所有相关的软件包。然后你可以安装你想要的。
例如,在我的ubuntu 12.04上,我搜索了
LibXSLT
:因此,如上所述,很明显您希望安装
libxml-libxslt-perl
。cetgtptt3#
查找哪个包提供Perl模块的最简单方法是:
需要安装dh-make-perl包
9njqaruj4#
正如所回答的,by Christian Pietsch和pau 4 o
dh-make-perl
可以定位包含给定perl模块的Debian软件包。下面的脚本从cpanfile中提取所有需要的模块,将它们传递给dh-make-perl并打印相应的Debian包:我使用它作为
perldebs
,首先将Perl模块作为Debian模块安装,并仅从CPAN获取其余部分。该解决方案尚未考虑版本号:8qgya5xd5#
Debian/Ubuntu/...包是从Perl发行版的名称派生出来的。
XML::LibXSLT
是XML-LibXSLT
分布的一部分。您可以通过访问模块的CPAN页面找到发行版名称(XML-LibXSLT
)(第一个链接)。在最上面,在作者名字后面。为了获得Debian/Ubuntu/...软件包名称,小写Perl发行版名称,前缀为
lib
,后缀为-perl
。或者,你也可以寻找提供
XML/LibXSLT.pm
的包。[2]一种方法:1.使用
"lib" . lc( $distro ) . "-perl"
获得。1.使用
( $module =~ s{::}{/}gr ) . ".pm"
获得。