要放假了,突然想整理一下手头上的软件,突然发现perl的安装模块这个功能不能用。 弄了一下,使得windows 下 perl 的 cpanm能用,避免成天为了依赖痛苦。 软件版本:#理论上此方法所有版本通用 windows8.1 64bit Active-perl v5.22.1 64bit dmake 4.12.2.2 cpanm 1.7040 1. 下载 1)perl: https://www./get.html #比较简单不再赘述。 2)dmake: http://mirrors.163.com/cpan/authors/id/S/SH/SHAY/dmake-4.12.2.2.zip 3)cpanm(App::cpanminus): http://mirrors.163.com/cpan/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7040.tar.gz 注意了,当前我下载的版本分别是 4.12.2.2 和 1.7040 ,随着时间推移,可能版本有更新,将上述路径红色部分去掉,浏览器打开,然后搜索对应的模块名称来下载即可。 2. 安装perl并添加环境变量(exe文件里面有提示添加,可以在那里添加即可,假设Perl安装路径是D:/Perl64)。 3. 将dmake-4.12.2.2.zip解压,把 startup 文件夹和 dmake.exe 文件放入D:/Perl64/bin 4. 解压App-cpanminus-1.7040.tar.gz 到任意目录,cmd窗口进入,输入如下命令: perl Makefile.PL dmake test dmake install 上面这命令和在linux下的一样啦,只不过linux下是用gcc的make 5. 已经能用的了: cpanm Net::SMTP::TLS 6. 运行上述命令的时候是不是报错啦? D:/tools/perl>cpanm Net::SMTP::TLS --> Working on Net::SMTP::TLS Fetching http://www./authors/id/A/AW/AWESTHOLM/Net-SMTP-TLS-0.12.tar.gz... FAIL ! Download http://www./authors/id/A/AW/AWESTHOLM/Net-SMTP-TLS-0.12.tar.gz failed. Retrying ... ! Download http://www./authors/id/A/AW/AWESTHOLM/Net-SMTP-TLS-0.12.tar.gz failed. Retrying ... ! Download http://www./authors/id/A/AW/AWESTHOLM/Net-SMTP-TLS-0.12.tar.gz failed. Retrying ... ! Failed to download http://www./authors/id/A/AW/AWESTHOLM/Net-SMTP-TLS-0.12.tar.gz ! Failed to fetch distribution Net-SMTP-TLS-0.12 别急,这是因为你在大天朝帝国,幸好我们天朝也是有好人的:163和sohu的镜像站:http://mirrors.163.com/cpan、http://mirrors.sohu.com/CPAN/ 使用cpanm的时候指定镜像站点就好了: cpanm --mirror http://mirrors.163.com/cpan Net::SMTP::TLS 附加. 第6点实际上已经结束了的,但是我不能每次都这么搞啊,虽然163很可爱,但是也不能每次都输入一遍啊。 windows又没有alias,咋办? 简单的办法: 在D盘新建文件夹 bin ,在D:/bin 下新建文件:cpanm163.bat (注意名字一定要和cpanm区分开,不然会死循环),内容: cpanm --mirror http://mirrors.163.com/cpan %1% 然后很重要的一点来了。 系统变量里面,默认是 D:/Perl64/site/bin;D:/Perl64/bin; 在最前面的(真流氓),我们在这个前面加上D:/bin; 就能将自己的程序优先执行了。 C:/Users/Administrator>cpanm163 Net::SMTP::TLS C:/Users/Administrator>cpanm --mirror http://mirrors.163.com/cpan Net::SMTP::TLS Net::SMTP::TLS is up to date. (0.12) 同理还能在ls.bat 文件 里面使用dir %1%来模拟linux的ls命令(当然,这个只是模拟,实际上功能不对滴) 。 |
|
来自: aixuexidewau1 > 《perl_study》