安装CPAN模块而不会搞乱系统的Perl安装

我听说最好不要从你的系统的Perl版本的CPAN上安装模块。 我知道如何使用命令行来安装模块,我只是想知道是否有方法使CPAN与系统的核心Perl分离。

我是不是该:

下载源代码并为这些模块专门制作一个目录?

任何人有任何其他想法或实现,他们已经成功地使用?

我使用Arch Linux和Perl 5.16.2。

你在找什么像local::lib

local :: lib – 为PERL5LIB创建和使用本地lib / for perl模块

下载并提取最新版本的local::lib

 curl -LO http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz tar xzf local-lib-1.008004.tar.gz cd local-lib-1.008004/ 

部署它:

 perl Makefile.PL --bootstrap=$HOME/perl5 make make test make install 

保存持久性配置:

 cat << PROFILE >> $HOME/.profile eval \$(perl -I\$HOME/perl5/lib/perl5/ -Mlocal::lib) PROFILE 

现在,您可以注销/登录您的会话或简单地source ~/.profile 。 在这之后,CPAN模块将被安装在本地。

您不需要手动安装模块。 你只需要有一个地方来安装它,并且你的环境被配置成在那里安装它。 然后你可以正常使用cpan / cpanp / cpanm / etc。 (cpan减去我的胜利)

手动设置这个环境有点痛苦,所以大多数人使用一个应用程序为它们设置配置。

这两个主要的选择是:

local::lib – 这设置你的环境变量,所以你可以安装模块远离系统的Perl,但继续使用系统的Perl。

Perlbrew – 这会为你安装一个完整的perl,所以让你完全避免你的系统perl,并且使用一个更新的perl本身版本,然后可能会随你的系统一起提供。 它还可以并行管理多个perl安装(因此您可以针对不同版本的perl测试您的模块)。

就个人而言,我更喜欢Perlbrew(因为它可以很容易地玩yada yada运算符和智能匹配等闪亮的新功能(不是那个聪明的匹配是新的现在),但需要更长的时间来设置(因为你必须编译perl )。

我听说最好不要从你的系统的Perl版本的CPAN上安装模块。

这个想法是通过升级他们使用的模块来避免破坏你的发行版的工具。

在这种情况下,将模块安装到一个全新的目录并使用PERL5LIB (这就是前面提到的install :: lib所做的)告诉Perl它根本不会有任何帮助,因为Perl看起来和安装模块完全一样在通常的site目录中。

(当没有权限安装到默认目录时,主要使用PERL5LIB来安装模块。)

使用系统Perl的另一个问题是,您无法升级它。

两者的解决方案都是安装你自己的Perl版本。 使用perlbrew很容易。

什么是cpanminus? CPAN减模块

为什么不把模块打包成真正的软件包,rpm或dep样式? 这样,您可以控制安装的软件,您可以根据需要删除和更新软件包,就像您习惯的那样。 所以,不要绕过管理,这很少是一个好主意,你保持控制。

如果你使用的是基于rpm的分发,我真的推荐OBS来完成这个任务。 您可以创建自己的项目,配置源代码,测试它们,并为各种发行版和体系结构创建包。 而当您将家庭项目资源库导入到软件管理中时,只需单击一下即可安装软件包。