Perl 入门及高级编程25.pdf
下载第四部分附录附录安装模块下载附录安 装 模 块在P e r l中安装模块并不困难,如果你想真正掌握 P e r l,那么学会如何安装这些模块是非常重要的。本附录包含了关于如何安装你需要的模块的信息。在P e r l的文档资料中,你可以得到在各种操作系统下安装模块的详细说明。名叫“P e r l m o d i n s t a l l”的文档甚至包含了在 O S2和V M S之类的操作系统下安装模块的说明。A.1 选择正确的模块首先,必须选择正确的模块。可以通过站点 h t t p:/w w w.p e r l.c o mC PA N上的C PA N寻找你要的模块。你必须确定对哪个模块感兴趣。C PA N模块大体上是按它们的功能来命名的。例如,I m a g e:s i z e带有一个图形,并且能够报告该图形的大小,该模块可用来与 We b页一道运行。不过,有些模块使用一些特殊的名字。LW P是根据P e r l库l i b w w w-p e r l而得名的。还可以在C PA N上找到模块包。这些模块包含有若干相关的模块,这些模块通常是一些必须要有的模块,它们全部放在一个大模块包中。例如,l i b n e t模块包可以像一个模块那样来安装,不过在安装过程中,你会得到若干个与网络相关的模块。LW P就是l i b n e t模块包中的一部分。当你安装一个模块时,还会自动获得该模块需要的所有文档。A.2 在何种操作系统下安装在下面各节中的每个安装模块的例子中,你将安装来自 C PA N的D a t e:M a n i p模块。若要安装你自己的模块或模块包,只要用你的模块包取代 D a t e:M a n i p即可。A.2.1 在Windows9598NT下安装在Wi n d o w s下,假定已经安装了来自ActiveState Tool 公司的P e r l,安装模块的最容易的方法是使用ActiveState To o l公司已打包的模块。若要在Wi n d o w s下安装预装模块,首先必须启动 Perl Package Manager(PPM)。该实用程序通过提供一个用于模块安装的交互式界面,从而简化了模块安装进程。为了启动P P M,你必须显示一个D O S命令提示符,如图A-1所示,应该连接到I n t e r n e t。在命令提示符处,键入如下所示的 P P M。这时P P M实用程序应该启动运行。如果它没有启动运行,你必须查找与ActiveState Perl一道安装的p p m.b a t文件,并用全路径名运行它:若要搜索某个模块,请使用下面所示的 s e a r c h命令。之所以你必须使用该命令,原因是A c t i v e S t a t e并没有C PA N中的所有模块的预装模块包,它只有比较常用的模块。另外,为了进行安装,必须正确拼写模块名。当你找到你想要的模块(比如这个例子中的 D a t e-M a n i p)后,就可以使用i n s t a l l命令,对该模块进行安装,如下所示:这时D a t e:M a n i p模块就安装好了。如果你想下载模块包并用人工进行安装(也许 P C没有与I n t e r n e t连网或者它位于防火墙的后面),可以在A c t i v e S t a t e的We b站点(h t t p:/w w w.A c t i v e S t a t e.c o m)上找到下载和人工安装模块的说明。A c t i v e S t a t e维护了一个关于它销售的 P e r L产品的特定FA Q,你可以在那里找到必要的说明。不使用P P M来安装模块,比如使用Wi n d o w s下你自己的编译器来进行安装,这不是本书要讲解的内容。P e r l的原始产品中包含了在Wi n d o w s下你自己安装P e r l的说明,但这不是初学者能够做的工作。如果你能够进行这项操作,那么自己来安装模块就不会太难,因为安装过程是大致相同的。286使用第四部分附录下载图A-1 可以从 D O S命令提示符处开始安装模块的操作A.2.2 在UNIX下使用CPAN来安装模块在U I N X下安装模块是很有趣并且会遇到许多问题的,但是它也可能是非常容易的。你需要一个ANSI C编译器(用于安装P e r l的编译器就很好),如果供应商要求的话,你还必须拥有编译器许可证。你不需要 G N U压缩程序g z i pg u n z i p的拷贝,有些U N I X供应商将它作为一个标准实用程序提供给用户使用。如果你没有这个拷贝,可以从网址 h t t p:/w w w.f s f.o rg下载一个拷贝。有些 U N I X供应商(比如 H P公司)在它们的操作系统中配备了一个C编译器,但是它不是 ANSI C编译器,这是 C编译器的一个非常简化了的版本,因此你必须花钱购买实际的 C编译器,或者交费下载和安装 GNU C编译器。最后一个问题是:你在安装模块的计算机上必须拥有根(管理员)访问权限。通常情况下,P e r l是作为整个系统范围的实用程序来安装的。将模块安装到系统目录中,你必须拥有足够的访问权限(即根权限)才能进行这种操作。P e r l产品配有一个称为 C PA N的模块,用来帮助你安装其他的模块。若要开始安装操作,你必须使用C PA N模块的s h e l l命令来启动P e r l,如下所示:$perl-MCPAN-e shell如果你是初次运行该命令,C PA N模块就会要求你确定从何处取得 P e r l的模块以及你想要如何安装这些模块。大多数情况下,默认答案就足以满足你的要求。然后它会问你临时目录的位置在什么地方(这是 C PA N对你想使用的目录进行镜像的目录),并且问你是否通过代理程序来访问I n t e r n e t。当C PA N结束对你的提问后,你会看到下面这个提示:在这个提示后面,你可以使用命令 i p a t,搜索关于模块包的信息,其中 p a t用于说明你要搜索的模式。例如,若要查找 D a t e:M a n i p模块,请输入下面这个命令:C PA N模块必须与一个C PA N服务器取得联系,以使获取该索引的新拷贝。这种情况只有在需要时才会出现,并且这个进程只需很短时间就能完成。当查询结束时,C PA N就会答复下面这样的信息:若要安装该模块,请键入下面的命令:这时,C PA N模块开始按步骤执行索取、编译、测试和安装模块的各个进程。它显示的信息相当零乱,不过它类似下面这个大大简化了的例子(后面的注释通常并不出现,这里增加了注释,目的是使它更加清楚):附录 安 装 模 块使用287下载你得到的输出可能与上面的情况有很大的不同。现在该模块已经测试和安装好了。A.2.3 在UNIX下用另一种方法安装模块虽然你可以不使用C PA N模块在U N I X下安装各个模块,但是大多数情况下不需要用下面这种方法来安装模块。我们只是为了完整起见才介绍这种安装方法,但是只要可能,都应该使用C PA N模块来安装各个模块。首先,必须从C PA N下载你要安装的模块。它是个压缩了的综合模块包。例如,如果要安装的模块是D a t e:C a l c,你必须得到它的新版本,它的名字类似 D a t e-C a l c-X.Y.t a r.g z。当你下载了该模块包后,进入该目录,对该模块包进行拆包操作,如下所示:拆包后便产生一个子目录,称为 D a t e-C a l c-4.2。若要转入该子目录,请使用 c d,并键入下面的命令:现在你就拥有一个 m a k e程序的描述文件,这对于安装进程来说是个必不可少的文件。接着,使用下面这样的m a k e命令,安装该模块:这个进程的运行需要花费一定的时间。288使用第四部分附录下载在下一个提示符后面,你必须测试该模块,以了解它的安装是否正确。请键入下面这个make test命令:你始终都应该运行 make test命令,以确保模块安装正确。它能省去你以后好几个小时的调试时间。当测试完成后,必须像下面这样安装该模块。这个操作步骤通常是以根用户身份来进行的,因为安装时必须写入系统目录:这样,你的安装操作就完成了。A.2.4 在Macintosh系统上安装模块在M a c i n t o s h系统上安装模块是比较困难的。你应该查看 M a c P e r l的FA Q,了解关于可以用来安装模块的方法的信息。MacPerl FA Q可以在网址h t t p:/W W W.m a c p e r l.c o m上找到。A.3 当不允许你安装模块时该怎么办如果你能够在系统上安装程序,你就能够安装模块。你能够这样做,取决于模块的复杂程度和你会遇到何种困难。有时系统管理员不允许你安装某个模块,因为他不想让其他人使用该模块。在某些情况下,只有你或者一组人才想使用某些特定模块,在整个系统范围内安装这些模块太复杂了。无论哪种情况,在你自己的目录中安装P e r l模块的专用拷贝并不难。首先,必须使用前面给出的说明(只有一些小的例外)安装模块。你可以指定安装程序,将模块安装到特写的目录中。如果在 Wi n d o w s下使用P P M,在你安装模块前,必须告诉 P P M,你想将模块安装到另一个目录。为此可以使用下面这样的 s e t命令:然后该模块被组装在目录C:m y p e r l中。附录 安 装 模 块使用289下载在U N I X下,当你使用C PA N模块时,可以使用下面的m a k e p l _ a rg设置项来设定安装目录:或者,如果你使用m a k e实用程序人工安装模块,你可以在第一个代码行上使用 P R E F I X参数,设定安装目录:无论使用哪种方法,你要安装的模块将被安装到/h o m e/c l i n t p/p e r l/l i b目录中。如果需要的话,你可以再将该模块移到另一个目录中。你应该注意,不要将模块在不同操作系统的计算机之间移动。经过编译的模块只能在一种类型的操作系统上运行,这与 P e r l本身的情况是一样的。另外,不要试图在不同版本的 P e r l之间移动模块,有时它不能运行。在这种情况下,你必须重新安装该模块。使用安装在特殊位置中的模块若要使用安装在非标准目录中的模块,必须使用命令 use lib。例如,如果你使用上一节中的说明将模块D a t e:M a n i p安装在目录h o m e/c l i n t p/p e r l/l i b中,就会得到一个图A-2所示的文件树。在你的程序开始处,只需要使用下面的代码:这时P e r l在搜索它自己的目录之前,首先搜索该目录,找出它要的模块。还可以使用这种方法将模块的新版本安装在系统上(以便达到测试目的),但不会改写老的版本,也不会带来不兼容的问题。290使用第四部分附录下载图A-2 安装D a t e:M a n i p模块后形成的文件树