我以前曾经在讲 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 里面仔细看看啦!
暂时用不到,不过MARK。。。
推荐试试cpan的升级版——cpanp(cpan plus)。
@yixf, 好的!不过老的服务器上没有cpanp
你好,楼主,我也是普通用户模式下安装Bio:Perl,之前已经安装过Perl,能用。也按你说的改了,可是每次中途还是会出现
MINGYILIU/Bio-ASN1-EntrezGene-1.10-withoutworldwriteables.tar.gz
/usr/bin/make test — OK
Running make install
[sudo] password for dzb:
我的密码不能通过这个,安装失败,不知道这个怎么解决哦?谢谢