在这些例子里,我将用stas作为用户名,/home/stas作为该用户的私人目录。
安装Perl模块到选择的目录
既然不用超级用户权限,那么你就不允许安装到系统目录,象/usr/lib/perl5。你需要找到如何在你的私人目录安装这些模块的方法。这很容易。 nbsp;
首先,你需要决定安装这些模块到什么地方。最简单的途径就是在你的私人目录下模仿与Perl有关的根目录文件系统的移植。实际上,我们只需要两个目录: nbsp;
/home/stas/bin
/home/stas/lib
既然他们会在第一个模块被安装时自动创建,那么我们就不必创建它们。99%的文件将被拷贝到lib目录下。有时候,当一些模块随着Perl脚本发布的时候会被拷贝到bin目录。如果目录不存在会被创建。
让我们安装CGI.pm包,该包包含了一些其它CGI::*模块。通常,从CPAN库下载该包,解开该包并进入新建的目录里。
现在做一个标准的perl文件Makefile.PL去准备Makefile.但是这个时候让 nbsp;MakeMaker nbsp;用你的Perl安装目录,而不是缺省的。 nbsp;
% nbsp;perl nbsp;Makefile.PL nbsp;PREFIX=/home/stas
PREFIX=/home/stas nbsp;只是安装过程不同于通常的一部分。 nbsp;注意如果你不在意MakeMaker如何选择剩下的目录,或者如果你正在用一个需要显式指明所有目的目录的老版本,那么这样做: nbsp;
% nbsp;perl nbsp;Makefile.PL nbsp;PREFIX=/home/stas nbsp;
INSTALLPRIVLIB=/home/stas/lib/perl5 nbsp;
INSTALLSCRIPT=/home/stas/bin nbsp;
INSTALLSITELIB=/home/stas/lib/perl5/site_perl nbsp;
INSTALLBIN=/home/stas/bin nbsp;
INSTALLMAN1DIR=/home/stas/lib/perl5/man nbsp;
INSTALLMAN3DIR=/home/stas/lib/perl5/man3
剩下的跟通常一样: nbsp;
% nbsp;make
% nbsp;make nbsp;test
% nbsp;make nbsp;install
make nbsp;install nbsp;安装所有的文件到私人目录。注意所有丢失的目录会被自动创建,因此没有必要创建它们。
以下就是这么做的(稍微改动过): nbsp;
正在安装 nbsp;/home/stas/lib/perl5/CGI/Cookie.pm
正在安装 nbsp;/home/stas/lib/perl5/CGI.pm
正在安装 nbsp;/home/stas/lib/perl5/man3/CGI.3
正在安装 nbsp;/home/stas/lib/perl5/man3/CGI::Cookie.3
正在写入 nbsp;/home/stas/lib/perl5/auto/CGI/.packlist
正在追加安装信息到 nbsp;/home/stas/lib/perl5/perllocal.pod
如果你不得不用显式目的参数,那么不用单个PREFIX参数,你会发现建立一个被调用的文件很有用。
例如, nbsp;/.perl_dirs nbsp;(这里 nbsp;在我们的例子中是 nbsp;/home/stas) nbsp;的内容包含: nbsp;
PREFIX=/home/stas nbsp;
INSTALLPRIVLIB=/home/stas/lib/perl5 nbsp;
INSTALLSCRIPT=/home/stas/bin nbsp;
INSTALLSITELIB=/home/stas/lib/perl5/site_perl nbsp;
INSTALLBIN=/home/stas/bin nbsp;
INSTALLMAN1DIR=/home/stas/lib/perl5/man nbsp;
INSTALLMAN3DIR=/home/stas/lib/perl5/man3
从现在起,任何时候你想本地化安装Perl模块就可以这样执行: nbsp;
% nbsp;perl nbsp;Makefile.PL nbsp;`cat nbsp;/.perl_dirs`
% nbsp;make
% nbsp;make nbsp;test
% nbsp;make nbsp;install
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 安装 身份 用户 超级 nbsp 目录 模块 Perl 如果 文件 |
注册
个人空间
