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

时间:2012-12-18 07:09:01

标签: linux perl

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

我应该:

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

任何人都有他们成功使用的任何其他想法或实施?

我正在使用Arch Linux和Perl 5.16.2。

6 个答案:

答案 0 :(得分:5)

您是否正在寻找local::lib

之类的内容
  

local :: lib - 使用PERL5LIB创建并使用本地lib / for perl模块

答案 1 :(得分:3)

下载并摘录最新版本的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模块将在本地安装。

答案 2 :(得分:3)

您无需手动安装模块。您只需要在某处安装它,并将您的环境配置为在那里安装它。然后你可以正常使用cpan / cpanp / cpanm / etc。 (cpan减去我的胜利)

手动设置该环境有点痛苦,因此大多数人使用应用程序为它们设置配置。

这两个主要选择是:

local::lib - 这会设置您的环境变量,以便您可以远离系统perl安装模块,但继续使用系统perl。

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

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

答案 3 :(得分:1)

  

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

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

将模块安装到一个新目录并使用PERL5LIB告诉Perl它(这是前面提到的install :: lib所做的)在这种情况下根本不会有任何帮助,因为Perl看到了完全相同的东西好像您已经将模块安装在通常的site目录中。

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

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

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

答案 4 :(得分:0)

cpanminus是什么? CPAN minus module

答案 5 :(得分:-2)

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

如果您使用的是基于rpm的发行版,我建议您OBS执行此任务。您可以创建自己的项目,配置源代码,测试它们,并为各种分发和体系结构创建包。当您将家庭项目存储库导入软件管理时,只需单击一下即可安装软件包。

相关问题