在HPC/集群计算环境中,大多数应用程序通常以'MODULE'的形式安装在定制的集中存储库中,而且大多数情况下,可能需要多个不同版本的软件应用程序共存。Perl就是这样一种常用的通用编程语言。我想询问最佳实践/解决方案,以便不仅能够在相互隔离的设置中安装多个Perl版本,而且还能够在以后的不同Perl安装中添加更多定制的Perl模块。例如,我可能需要将bioperl/1.7.2添加到Perl/5.28.1中,但将在Perl/5.36.0中安装bioperl/1.7.8。网上有很多关于如何做到这一点的建议。但是我想找到一种更简洁明了的方法。根据我自己的经验,我认为最佳实践可能是使用CPAN的自定义配置文件选项"CPAN -j"。在我发布这个问题之后,我会详细说明的。谢谢。
我在谷歌上搜索了很多,没有找到一个很好的答案来满足我的具体需求。因此,我将根据我到目前为止使用Perl的经验写下我自己的答案。
只使用您想要安装模块的perl
所安装的cpan
。
$ head -n 1 /home/ikegami/usr/perlbrew/perls/5.36.0t/bin/cpan
#!/home/ikegami/usr/perlbrew/perls/5.36.0t/bin/perl
$ /home/ikegami/usr/perlbrew/perls/5.36.0t/bin/cpan Text::CSV_XS
...
Installing /home/ikegami/usr/perlbrew/perls/5.36.0t/lib/site_perl/5.36.0/x86_64-linux-thread-multi/auto/Text/CSV_XS/CSV_XS.so
Installing /home/ikegami/usr/perlbrew/perls/5.36.0t/lib/site_perl/5.36.0/x86_64-linux-thread-multi/Text/CSV_XS.pm
Installing /home/ikegami/usr/perlbrew/perls/5.36.0t/man/man3/Text::CSV_XS.3
Appending installation info to /home/ikegami/usr/perlbrew/perls/5.36.0t/lib/5.36.0/x86_64-linux-thread-multi/perllocal.pod
HMBRAND/Text-CSV_XS-1.49.tgz
/usr/bin/make install -- OK
$ head -n 1 /home/ikegami/usr/perlbrew/perls/5.34.0t/bin/cpan
#!/home/ikegami/usr/perlbrew/perls/5.34.0t/bin/perl
$ /home/ikegami/usr/perlbrew/perls/5.34.0t/bin/cpan Text::CSV_XS
...
Installing /home/ikegami/usr/perlbrew/perls/5.34.0t/lib/site_perl/5.34.0/x86_64-linux-thread-multi/auto/Text/CSV_XS/CSV_XS.so
Installing /home/ikegami/usr/perlbrew/perls/5.34.0t/lib/site_perl/5.34.0/x86_64-linux-thread-multi/Text/CSV_XS.pm
Installing /home/ikegami/usr/perlbrew/perls/5.34.0t/man/man3/Text::CSV_XS.3
Appending installation info to /home/ikegami/usr/perlbrew/perls/5.34.0t/lib/5.34.0/x86_64-linux-thread-multi/perllocal.pod
HMBRAND/Text-CSV_XS-1.49.tgz
/usr/bin/make install -- OK
perlbrew
可以帮助您安装多个Perl构建,并且它可以帮助您操作在shell中找到的PATH。虽然示例中的Perl构建是在perlbrew
的帮助下安装的,但这不是必需的。