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命令(當然,這個只是模擬,實際上功能不對滴) 。