我听说最好不要从系统版本的Perl所在的CPAN安装模块。我知道如何使用命令行来安装模块,我只是想知道是否有方法将CPAN与系统的核心Perl分开。安装CPAN模块而不搞乱系统Perl安装
我应该:
下载源,并作出专门的目录,这些模块?
任何人有任何其他想法或实现,他们已经成功地使用?
我使用Arch Linux和Perl 5.16.2。
我听说最好不要从系统版本的Perl所在的CPAN安装模块。我知道如何使用命令行来安装模块,我只是想知道是否有方法将CPAN与系统的核心Perl分开。安装CPAN模块而不搞乱系统Perl安装
我应该:
下载源,并作出专门的目录,这些模块?
任何人有任何其他想法或实现,他们已经成功地使用?
我使用Arch Linux和Perl 5.16.2。
你在寻找类似local::lib
地方:: lib中 - 创建和使用本地的lib/Perl的模块,PERL5LIB
为什么不将模块打包成真正的软件包,rpm或dep样式?通过这种方式,您可以控制已安装的软件,您可以根据需要删除和更新软件包,就像您习惯的那样。所以,不要绕过管理,这很少是一个好主意,你会保持控制。
如果您使用的是基于rpm的版本,我真的推荐OBS来完成这个任务。您可以创建自己的项目,配置源代码,测试它们并为各种发行版和体系结构创建包。当您将家庭项目资源库导入到软件管理中时,只需单击一次即可安装软件包。
关于什么的cpanminus? CPAN minus module
下载并解压最新版本的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模块将在本地安装。
感谢您指导设置'local :: lib'。 +1 – squiguy
您不需要手动安装模块。你只需要在某个地方安装它,并且你的环境被配置为在那里安装它。然后你可以像平常一样使用cpan/cpanp/cpanm/etc。 (cpan减去我的胜利)
手动设置该环境有点痛苦,所以大多数人使用应用程序为它们设置配置。
这两个主要的选择是:
local::lib
- 设置你的环境变量,这样你就可以安装模块从系统perl的离开,而是继续使用该系统的Perl。
Perlbrew - 这会为您安装一个完整的perl,因此您可以完全避免您的系统perl,并使用更新的perl本身版本,然后可能随系统提供。它还可以并行管理多个perl安装(因此您可以针对不同版本的perl测试您的模块)。我个人更喜欢Perlbrew(因为它可以很容易地使用yada yada操作符和智能匹配等闪亮的新功能来玩(不是那种智能匹配现在是新的),但它需要更长的时间来设置(就像你要编译perl的)。
我听说,这是最好的你的系统的版本的Perl是不是从CPAN安装模块。
这样做是为了避免升级破坏你的发行版的工具他们使用的模块
安装模块到一个新的目录,并使用PERL5LIB
(这就是前面提到的安装:: lib中所做的)是不会在所有帮助在这种情况下,因为Perl看到完全一样的东西告诉Perl的它,如果你已经安装了模块在通常的site
目录中。
(其中将主要使用PERL5LIB安装模块时,一个没有安装到默认的目录权限。)
的另一个问题使用该系统的Perl是要升级它阻止。
的解决这两个是安装你自己的Perl的版本。这很容易使用perlbrew
。
是 - 本地:: lib和也抢应用:: cpanminus - 在cpanm工具的工作原理非常整齐当地:: lib中 –
这无助于解决由OP提到的所有问题。看到我的答案。 – ikegami