Posted in: Perl/R

CPAN 的配置与普通用户安装 Perl 模块

我以前曾经在讲 BioPerl 时有意无意地提到,安装 Perl 模块最简单的方法是:

把模块文件下载下来,放到自己的某个目录下面,再把该目录添加到自己的路径(~/.bashrc)里面。例如,以模块 List::MoreUtils 为例,它实际上代表一个名为 List 的文件夹,里面有一个名为 MoreUtils.pm 的文件。把这个文件夹放在自己的目录下面(例如,~/perlmodule/),再把~/perlmodule/目录添加到自己的 $PERL5LIB 变量里面就 OK 了。

export $PERL5LIB = $PERL5LIB:"~/perlmodule/"

自己曾经用这种傻瓜式的方法很长时间。但是这种方法只适合很简单的模块,稍微复杂一点的就不行了,比如依赖于其它模块的,或者需要复杂“处理”的。

真正安装模块的神器是 cpan 这个命令(系统自带,其实是安装 Perl 时默认一起安装的)。

想要安装名字叫做 A 的模块,只需执行一条命令:

cpan A

当然了,名字 A 必须很准确,不能多一个或者少一个字符(这个不难办,网上查一下就出来了)。

不过,大多数情况下这是行不通的,因为你并没有告诉 cpan 应该在什么地方安装模块嘛,那么它就会往标准目录里面安装(多半是 /usr/local/share 之类的)。如果你没有管理员权限,自然也就无法安装成功。

所以我们需要对 cpan 进行配置,而且全部使用普通用户的权限进行操作

输入命令 cpan,就会进入 cpan 的 shell 。(如果你第一次运行 cpan,会问你一些配置的问题,一路回车到底就行,除非遇上填写 urllist 地址的那里,需要写一写,可以看下面)。

输入目录 o conf,会列出当前所有配置的选项。大部分选项都可以默认,随便看看吧。有两个地方得改一下:

(1)镜像站点网址:urllist

这个地方一定得写对,不然下载模块会非常慢。我一般使用北京交通大学的镜像,配置的命令是:

o conf urllist http://mirror.bjtu.edu.cn/cpan

然后还要输入

o conf commit

才能确认

(2)模块安装地址:makepl_arg 和 mbuildpl_arg

假设想把模块安装到 A 目录下面,需要这么写

o conf makepl_arg PREFIX=A
o conf mbuildpl_arg "--install_base A"

然后确认

o conf commit

大部分情况下,这样就够了。以后安装任何模块,一条命令 cpan XXX 就搞定。

当然还需要把模块所在的路径加进自己的 $PERL5LIB 变量。注意不是上面说的 A。因为安装模块时会往 A 里面加入多级目录(比如 A/lib/perl5,或者A/lib/perl5/site_perl/5.x.x/ 相当复杂),自己要去 A 里面仔细看看啦!

Comments (4) on "CPAN 的配置与普通用户安装 Perl 模块"

  1. Internet Explorer 9.0 Windows 7 x64 Edition

    你好,楼主,我也是普通用户模式下安装Bio:Perl,之前已经安装过Perl,能用。也按你说的改了,可是每次中途还是会出现
    MINGYILIU/Bio-ASN1-EntrezGene-1.10-withoutworldwriteables.tar.gz
    /usr/bin/make test — OK
    Running make install
    [sudo] password for dzb:
    我的密码不能通过这个,安装失败,不知道这个怎么解决哦?谢谢

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注