以非超级用户身份安装 mod_perl
译者/作者:cactus
出处:中国Perl协会 nbsp;FPC(Foundation nbsp;of nbsp;Perlchina) 作者:Stas nbsp;Bekman nbsp; 原名:Installing nbsp;mod_perl nbsp;without nbsp;superuser nbsp;privileges nbsp; 原文:http://www.perl.com/pub/a/2002/04/10/mod_perl.html nbsp; 发表:April nbsp;10, nbsp;2002 nbsp; 请保护作者的著作权,维护作者劳动的结晶。 nbsp; 就像大家从以前的文章里看到的,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` 或者 nbsp; % nbsp;perl nbsp;Makefile.PL nbsp;`cat nbsp;~/.perl_dirs.develop` 编写你自己的脚本找到本地已安装模块 这些Perl模块通常都放在四个主要目录。为了找到这些目录,执行: nbsp; % nbsp;perl nbsp;-V 输出包含重要的perl安装信息。最后你将看到: nbsp; Characteristics nbsp;of nbsp;this nbsp;binary nbsp;(from nbsp;libperl): Built nbsp;under nbsp;linux Compiled nbsp;at nbsp;Apr nbsp;6 nbsp;1999 nbsp;23:34:07 @INC: /usr/lib/perl5/5.00503/i386-linux /usr/lib/perl5/5.00503 /usr/lib/perl5/site_perl/5.005/i386-linux /usr/lib/perl5/site_perl/5.005 . 这向我们表明Perl特殊变量@INC的内容,这个特殊变量通常被Perl用来查找模块的。它等价于Unix nbsp;shells里的PATH环境变量,是用来查找可执行程序的。 注意Perl也在.目录(代表当前目录)查找模块,这是在以上输出目录里的最后的入口路径。当然,这个例子来自5.00503版本的perl, nbsp;它安装在我的x86结构PC的Linux中。这就是为什么你看到了i386-linux和5.00503. nbsp;如果你的系统运行着不同版本的perl、操作系统、处理器或者芯片结构,那么一些目录会有不同的名字。 我也安装了perl nbsp;5.6.1版本到 nbsp;/usr/local/lib/ nbsp;,所以当我这么做: nbsp; % nbsp;/usr/local/bin/perl5.6.1 nbsp;-V 你会看到: nbsp; @INC: 上一篇:FC3中的JAVA安装及配置 下一篇:受限制环境安装Perl模块方法 更多相关文章
|
推荐文章
精彩文章
·帐号安全
|