用非超级用户身份来安装 mod

   就像大家从以前的文章里看到的,mod_perl nbsp;使Apache由两个组件组成: nbsp;Perl nbsp;模块和 nbsp;Apache nbsp;本身。虽然以非超级用户权限安装Apache很简单,但是应该知道如何安装在非系统位置的Perl模块。本文我将论证几种方法来实现这个任务。
在这些例子里,我将用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
用这个方法,你可以很容易地保持不同Perl模块的存储。例如,你可以一个用作production nbsp;Perl,另一个用作开发。 nbsp;
% nbsp;perl nbsp;Makefile.PL nbsp;`cat nbsp;/.perl_dirs.production`

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzwsdd.html