第一种方法:利用.ppd文件安装
这是在网上看到的方法,有人说下载模块的zip包,能解压出.tar.gz和.ppd两个文件,但是我从CPAN上没找到zip包,仅下载到.tar.gz包,所以自己按下面格式写了一个Net-SSH.ppd文件,每个tar.gz都需要对应一个ppd。
<SOFTPKG NAME="Net-SSH" VERSION="0.09"> <TITLE>Net-SSH</TITLE> <ABSTRACT>Net-SSH</ABSTRACT> <AUTHOR>Net-SSH</AUTHOR> <IMPLEMENTATION> <OS NAME="MSWin32" /> <ARCHITECTURE NAME="MSWin32-x86-multi-thread-5.14" /> <CODEBASE HREF="Net-SSH-0.09.tar.gz" MCE_HREF="Net-SSH-0.09.tar.gz" /> </IMPLEMENTATION> </SOFTPKG>
architecture name 要与ActivePerl版本相匹配,否则安装失败
codebase href 模块保存的路径
打开command,输入ppm install Net-SSH.ppd,安装成功
第二种方法:利用Repository安装
这个方法适合要安装的模块比较多,更适合局域网共享模块多人安装,最大的好处是直接使用PPM GUI,不用command,相当于局域网的模块管理服务器。
打开Perl Package Manager-Preferences-Repositories,仿照默认下载地址的package.xml,自己重写一个package.xml保存在本地、HTTP或者FTP上,格式如下,有多少个模块就写多少个SOFTPKG:
<?xml version="1.0" encoding="UTF-8" ?> <REPOSITORYSUMMARY ARCHITECTURE="MSWin32-x86-multi-thread-5.14"> <SOFTPKG NAME="Net-SSH" VERSION="0.09" DATE="2008-05-14"> <AUTHOR CPAN="Ivan Kohler">Ivan Kohler</AUTHOR> <ABSTRACT>Perl extension for secure shell</ABSTRACT> <CODEBASE HREF="http://172.168.0.1/perl/Net-SSH-0.09.tar.gz" /> <PROVIDE NAME="Net::SSH" VERSION="0.09" /> </SOFTPKG> <SOFTPKG NAME="Net-SSH-Any" VERSION="0.03" DATE="2012-11-19"> <AUTHOR CPAN="Salvador Fandino Garcia">Salvador Fandino Garcia</AUTHOR> <ABSTRACT>Perl extension for secure shell</ABSTRACT> <CODEBASE HREF="http://172.168.0.1/perl/Net-SSH-Any-0.03.tar.gz" /> <PROVIDE NAME="Net::SSH::Any" VERSION="0.03" /> </SOFTPKG> </REPOSITORYSUMMARY>
Add Repository:
Name:自定义名称,如Local Server
Location:http://172.168.0.1/perl/package.xml
点击Add按钮,查看Pkgs个数应该等于SOFTPKG个数,之后的操作就和在线安装一模一样了。
如果模块install之后Run marked actions时出现解压文件出错,应该是package.xml的codebase路径有错误,tar.gz其实并没有下载成功,将路径在浏览器中打开,如果能弹出下载窗口就说明地址正确。package.xml有任何改动都需要删除原来的Repository,重新添加。