windows下使用cpanm进行模块安装

时间:2021-11-13 04:42:25

windows下使用cpanm进行模块安装

要放假了,突然想整理一下手头上的软件,突然发现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.perl.org/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.cpan.org/authors/id/A/AW/AWESTHOLM/Net-SMTP-TLS-0.12.tar.gz... FAIL

    ! Download http://www.cpan.org/authors/id/A/AW/AWESTHOLM/Net-SMTP-TLS-0.12.tar.gz failed. Retrying ...

    ! Download http://www.cpan.org/authors/id/A/AW/AWESTHOLM/Net-SMTP-TLS-0.12.tar.gz failed. Retrying ...

    ! Download http://www.cpan.org/authors/id/A/AW/AWESTHOLM/Net-SMTP-TLS-0.12.tar.gz failed. Retrying ...

    ! Failed to download http://www.cpan.org/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命令(当然,这个只是模拟,实际上功能不对滴) 。