问题描述
在 python 中,我们有 pip install -r requirements.txt
。 perl 中是否有类似的东西?
我如何从这个 ExtUtils::Installed 列表开始,首先安装给定的 perl,然后安装正确的版本模块?
./installed.pl
DBD::sqlite - 1.66
DBI - 1.643
Perl - 5.26.1
Extutils 适用于目录路径和 .packlists
解决方法
您的容器应该首先安装正确的 perl(比如 perlbrew),然后是 App::cpanminus。之后,一个名为 cpanfile 的文件对应于上面的 requirements.txt 或 .packlist,看起来像
requires 'DBI' => '1.643';
requires 'DBD::SQLite' => '1.66';
您使用 cpanm --installdeps .
安装的将安装其余部分。
该文件格式指定了这些模块的最低版本,隐式 >=
。如果您需要固定特定版本,请使用 ==
或避免使用带有 !=
的版本。
cpanfile 格式很灵活,允许您使用 --with-develop
标志等有条件地安装模块
编辑:有些人更喜欢 cpm 的速度而不是 cpanm 来安装大量模块。它需要一些捷径(默认跳过测试),在稳定的环境中不会产生影响。