2015-07-11 41 views
1

如果我正在編譯並運行各種版本的Perl,那麼在需要時重新定位其目錄的最佳方法是什麼?例如,如果我編譯的Perl 5.22.0有:將編譯過的Perl移動到新目錄中

./Configure -des -Dprefix=$HOME/perl522 
make all 
make test 
make install 

但後來意識到我想將它(和將來的版本)到一個名爲$HOME/perls/perl522/目錄 - 能不能用mv perl522 ~/perls/命令僅僅做,或者在初始Configure進程中使用的-Dprefix=命令是否固有鏈接該位置,因此需要完整的重新配置,製作,測試等?

這種情況下是否存在最佳實踐/簡化流程?

+0

[perlbrew](http://perlbrew.pl/)? – choroba

+0

理想情況下不需要perlbrew – secJ

+0

您需要在Config.pm中修復路徑。然後通過比較新值和舊值來檢查「@ INC」是否正確更新(由「perl -V」顯示)。如果這是正確的,你應該沒問題。 – ikegami

回答

1

查看Perl源代碼樹中「Relocatable @INC」標題下的INSTALL文件。可以大致做你想做的事情,但它需要編譯一個帶有特殊標記的perl,並且它有一些注意事項。

+0

看起來這是官方支持的Perl方式根據源文件中INSTALL文件的描述,在運行'./configure'時,需要添加'-Duserelocatableinc'標誌,以便將即將到來的內置Perl轉移到新的位置 – secJ

+0

當然,但問題是如何移動它如果你以後才意識到需要移動它。 – ikegami

+0

那麼,只要你想將它移動到一個長度相同或小於原始路徑的地方,你總是可以編輯perl二進制文件中的硬編碼路徑。 Emacs hexl-mode對於這類事情非常有效。 –