查找已为Debian和Redhat打包的Perl模块

查找已为Debian和Redhat打包的Perl模块,perl,package,debian,redhat,Perl,Package,Debian,Redhat,我正在研究如何在Debian和/或Redhat包中创建一个使用许多模块的Perl应用程序。目前,我认为实现这一点的“最干净”方法是在可能的情况下引用已经为给定发行版打包的模块 另一种选择是使用CPAN,可能会有一些重复,与@INC等问题 然而,我可以在这里找到或查询Debian软件包列表:但我目前找不到Redhat/Fedora的等效软件包。我也不知道cpan2deb是否是权威的和最新的 如果有另一种干净的方法可以做到这一点,我也欢迎任何其他的想法。有,但几年内没有人涉及过。我似乎记得cpan2

我正在研究如何在Debian和/或Redhat包中创建一个使用许多模块的Perl应用程序。目前,我认为实现这一点的“最干净”方法是在可能的情况下引用已经为给定发行版打包的模块

另一种选择是使用CPAN,可能会有一些重复,与@INC等问题

然而,我可以在这里找到或查询Debian软件包列表:但我目前找不到Redhat/Fedora的等效软件包。我也不知道cpan2deb是否是权威的和最新的


如果有另一种干净的方法可以做到这一点,我也欢迎任何其他的想法。

有,但几年内没有人涉及过。我似乎记得cpan2rpm,但我对它没有太多经验。

Debian Perl组是您在Debian世界中的最佳选择。他们不仅拦截了Debian的所有spread模块包,而且还试图使其保持最新

见本页:

另一种选择是使用CPAN,可能会有一些重复,与@INC等问题

我已经为debian打包了一个perl程序,其中包含大量依赖项。为了方便起见,我选择了一种肮脏的混合方法,将一些打包的模块作为依赖项,再加上一个作弊后门CPAN安装,它从我的安装后脚本运行。我配置了应用程序META.yml的副本,然后重新检查依赖项

1.
debian/rules
文件复制了META.yml:

 override_dh_auto_install:
dh_auto_install; \
cp META.yml etc/;\
etc/META.yml /usr/share/myapp/etc/
2.
debian/libmyapp perl.install
然后安装META.yml:

 override_dh_auto_install:
dh_auto_install; \
cp META.yml etc/;\
etc/META.yml /usr/share/myapp/etc/
3.
debian/libmyapp perl.postinstall
然后交叉检查依赖项:

echo "Cross checking with cpan";
for m in `perl -Mstrict -MYAML::Syck -e'my $r = YAML::Syck::LoadFile("/usr/share/myapp/etc/META.yml")->{requires}; for (grep {$_ ne "perl"} (sort keys %$r)) {eval "use $_ $r->{$_}"; print "$_\n" if $@}'`; do
   # would prefer App::cpanminus, but that's not packaged for debian either?
   PERL_MM_USE_DEFAULT=1 perl -MCPAN -e "install $m";
 done

不完全是干净的,但是一种快速安装依赖debian软件包和一些CPAN模块的方法。

嗨,非常感谢这一点,不幸的是,考虑到“世界”的状态,我们可能会有类似的想法……嗨,休。我发现总有一定比例的模块要么没有打包,要么需要更新版本。构建和维护您自己的本地包可能是一件非常麻烦的事情,您还需要维护您自己的debian存储库才能正确地完成这项工作。