3

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

我是不是该:

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

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

我正在使用带有 Perl 5.16.2 的 Arch Linux。

4

6 回答 6

5

你在寻找类似的东西local::lib

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

于 2012-12-18T07:17:08.907 回答
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 模块。

于 2012-12-18T12:31:17.717 回答
3

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

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

对此的两个主要选择是:

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

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

就个人而言,我更喜欢 Perlbrew(因为它可以轻松使用闪亮的新功能,如 yada yada 运算符和智能匹配(现在智能匹配不是那么新),但设置需要更长的时间(因为你必须编译 perl )。

于 2012-12-18T15:12:58.020 回答
1

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

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

在这种情况下,将模块安装到一个新目录并告诉 Perl 使用它PERL5LIB(这是前面提到的 install::lib 所做的)根本没有帮助,因为 Perl 看到的内容与您在通常的site目录。

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

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

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

于 2012-12-18T19:28:39.717 回答
0

cpanminus 是怎么回事? CPAN 减模块

于 2012-12-18T10:12:39.313 回答
-2

为什么不将模块打包成真正的包、rpm 或 dep 样式?这样您就可以控制已安装的软件,您可以根据需要和习惯删除和更新软件包。因此,与其绕过管理(这很少是一个好主意),不如让您保持控制。

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

于 2012-12-18T07:14:59.513 回答