我听说最好不要从你的系统的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来完成这个任务。 您可以创建自己的项目,配置源代码,测试它们,并为各种发行版和体系结构创建包。 而当您将家庭项目资源库导入到软件管理中时,只需单击一下即可安装软件包。