【问题标题】:Finding Perl modules already packaged for Debian and Redhat查找已为 Debian 和 Redhat 打包的 Perl 模块
【发布时间】:2012-08-21 08:16:46
【问题描述】:

我正在研究将使用许多模块的 Perl 应用程序制作成 Debian 和/或 Redhat 软件包。目前,我认为“最简洁”的方法是在可能的情况下引用已经为给定发行版打包的模块。

替代方案是使用 CPAN,但可能存在一些重复,@INC 等问题。

但是,我可以在这里找到或查询 Debian 软件包列表:http://pkg-perl.alioth.debian.org/cpan2deb/,但我目前无法找到 Redhat/Fedora 的等价物。另外我真的不知道 cpan2deb 是否权威和最新。

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

【问题讨论】:

    标签: perl package debian redhat


    【解决方案1】:

    cpanspec,但几年没碰过。我似乎记得 cpan2rpm,但我对那个没有太多经验。

    【讨论】:

      【解决方案2】:

      Debian Perl Group 是您在 Debian 世界上的最佳选择。他们不仅截获 Debian 的所有传播模块包,而且还试图使它们保持最新状态。

      查看此页面:

      http://qa.debian.org/developer.php?login=pkg-perl-maintainers@lists.alioth.debian.org

      【讨论】:

        【解决方案3】:

        替代方法是使用 CPAN,但可能存在一些重复,@INC 等问题。

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

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

         override_dh_auto_install:
        dh_auto_install; \
        cp META.yml etc/;\
        

        2.debian/libmyapp-perl.install 然后安装 META.yml:

        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 存储库才能正确完成。
        猜你喜欢
        • 2012-03-08
        • 1970-01-01
        • 2014-11-12
        • 1970-01-01
        • 2014-05-23
        • 2015-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多