我目前使用Strawberry Perl作爲我的主要Perl發行版。不過,我有一些通過cygwin進行Perl調用的應用程序。這些通常會失敗,因爲它們調用與cygwin一起打包的Perl版本,並且只查看cygwin的lib文件夾。我如何修改我的cygwin環境來調用Strawberry Perl(並使用C:/ strawberry/perl/lib dirs)?如何修改我的cygwin環境以使用Strawberry Perl而不是打包的Perl分發?
回答
如果您使用安裝程序從cygwin中刪除Perl,默認情況下它將使用Strawberry Perl。
如果您無法從cygwin中刪除Perl,則可以從Strawberry創建一個到Perl可執行文件的符號鏈接。
從cygwin外殼,使用下面的命令集:
$ mv /usr/bin/perl /usr/bin/perl-cygwin
$ ln -s /cygdrive/c/strawberry/perl/bin/perl.exe /usr/bin/perl
這是假設你使用默認草莓Perl的安裝程序。如果您將它安裝在其他地方,請相應地更新您的perl.exe
位置。
檢查以確保該鏈接是通過檢查Perl的版本中正常工作:
$ perl -v
應該說這是perl的,(版本)MSWin32 86多線程內置(或類似)和不是爲cygwin-thread-multi-64int而建。
我沒有我的cygwin機器附近,所以我不能測試這個,但也許你可以用腳本前端perl命令:轉到/ bin下的cygwin和移動perl.exe那裏的東西否則像perl-org.exe,然後設置一個shell腳本,用相同的參數來執行你的另一個perl。
您可以更改PATH將草莓目錄放在第一位。草莓試圖通過將其目錄放在PATH的末尾來使它更好。但是,如果從.zip文件安裝,它根本不會更改PATH。
您可以移動/ usr/bin/perl,但這是一個壞主意,因爲當cygwin嘗試更新它認爲是它的perl時它會中斷。本週我就遇到過這種情況,在我的Mac上曾發生在我身上,直到我停止使用系統設置並完全獨立安裝我自己的東西。
這可能不是首選解決方案,但您應該可以修改#! line:
#!/cygdrive/c/strawberry/perl/bin/perl5.10.0
我總是提到perl的顯式位置和安裝,而不是依賴於/ usr/bin中的內容。
我可以添加的一件好事是,如果你得到正確的perl首先在路徑中,它應該處理您可能已經安裝了草莓perl運行在CMD shell中的站點特定的CPAN模塊。
「哪個perl」是你的朋友。
如果遇到問題,可以設置PERL5LIB環境變量,但不應該有必要。
我仍將DOS風格的文件路徑作爲參數傳入perl腳本,即「d:\ data \ myfile.txt」,而不是「/cygdrive/d/data/myfile.txt」。所以,奇怪的是,這樣的搭配路徑表示法的工作原理:
慶典> /cygdrive/d/scripts/myscript.pl d:\數據\ myfile.txt的
如果你不想更動任何路徑或做任何永久的事情都很容易暫時破解。在Cygwin sh提示符處鍵入「perl」。它將按照執行順序列出它在PATH中看到的所有Perl.exe。改變你想要使用的perl之前你不想看到的名字。但是請記得在完成之後將它們改回來,否則你可能會遇到一些問題。
其中很多都是很好的解決方案,但我寧願採取一個簡單的方法,我不必多次修改。
您需要做的只是在.bashrc文件中添加/修改一行。
# Prepend strawberry perl to cygwin's path
export PATH=/cygdrive/C/Tools/Perl/perl/bin:$PATH
從您的shell源代碼.bashrc文件(或啓動一個新的shell)並運行您的程序。
source ~/.bashrc
perl script.pl
- 1. 如何在安全的環境下運行perl或shell腳本而不使用草莓Perl或Cygwin
- 2. 我可以在一臺計算機上同時使用Strawberry Perl和ActiveState Perl嗎?
- 3. 如何修改perl的
- 4. 如何在MSYS中設置Strawberry Perl?
- 5. 如何修改Perl腳本讀取Excel而不是HTML文件
- 6. Perl:如何分發自己的包MYModule.pm?
- 7. perl - 幫助修改代碼以包含子例程的使用
- 8. Cygwin想降級我的Perl
- 9. 爲什麼Strawberry Perl不會調用我的DllMain?
- 10. 如何使用Strawberry Perl將Perl腳本編譯爲Windows可執行文件?
- 11. Perl如何修改參數
- 12. 在Strawberry Perl中,perl \ lib和perl \ site \ lib有什麼區別?
- 13. 如何使用我的Perl for Windows應用程序打包sqlite?
- 14. 如何修改一個Perl變量在不同的包
- 15. 從DOS下的Cygwin環境運行perl腳本:: Net :: SSH :: Expect包CMD
- 16. 使用perl,而不是grep的
- 17. 如何安裝單個Perl Crypt :: OpenSSL :: AES以供不同的Linux環境使用
- 18. 使用perl設置環境變量
- 19. 不是List :: Util標準Perl分發的一部分嗎?
- 20. 用於測試的替代Perl環境
- 21. 我可以在分類Perl 6列表時修改值嗎?
- 22. 什麼是Perl的良好開發環境?
- 23. 在Cygwin下運行Perl程序時如何修復打印語句的時間?
- 24. 如何在Cygwin上使用我的Windows Python環境?
- 25. 如何在foreach循環中修改Perl數組中的元素?
- 26. 如何改變使用Perl
- 27. Perl和環境變量
- 28. OS X,Perl CGI環境
- 29. 如何在Perl/Plack中打印環境變量
- 30. 如何修改我的開發環境以創建網絡驅動器別名?
工作就像一個魅力!謝謝! – 2009-01-21 15:28:29
不錯...非常有幫助..謝謝你。 – Paul 2010-12-15 15:35:02