2015-07-11 21 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对于这类事情非常有效。 –

相关问题