2014-04-24 11 views
0

$prefix/lib/perl5/perl5.X下安装Perl的最简单方法是什么,而不是$prefix/lib/perl5/perl5.X.Y?在当前的方案中,当我用新的版本替换旧版本的Perl时(因为理论上ABI兼容的库被移动到不同的位置),针对libperl.dylib链接的所有二进制文件都停止工作。如何在没有子版本号的情况下安装Perl? (lib/perl5/5.X.Y - > lib/perl5/5.X)

Configure文件包含

case "$installstyle" in 
*lib/perl5*) set dflt privlib lib/$package/$version ;; 

$version设置为5.X.Y,但我不知道如何安全地解决这条道路不破坏任何东西。

回答

0
mv $prefix/lib/perl5/perl5.X.Y $prefix/lib/perl5/perl5.X 
ln -s $prefix/lib/perl5/perl5.X $prefix/lib/perl5/perl5.X.Y 

+0

这并不能解决问题。如果我在安装完所有文件之后才移动文件夹,'libperl.dylib'仍然会认为它安装在'$ prefix/lib/perl5/perl5.XY'下,并且任何二进制链接都将继续在'$ prefix/lib/perl5/perl5.XY'当我升级到5.XZ时我可以使用'install_name_tool'来解决这个问题,但我怀疑它不是唯一的问题。我真的想在配置时解决这个问题。 – Mojca

1

正如mob已经建议的,不要试图改变perl安装的位置,而应该设置一个符号链接来指向你想要使用的版本。

ln -s $prefix/lib/perl5/perl5.X $prefix/lib/perl5/perl5.X.Y 

但是,我相信你可能会使用perlbrew的介绍。 perlbrew是一个管理您的$HOME目录中的多个perl安装的工具。这将使您可以安装新版本而不会冒着其他开发环境的风险,并且可以在不同版本的perl之间无缝切换。

+0

我忘了提及我试图在包管理器中“修复”perl包。所以用'$ HOME'“搞砸”是毫无疑问的。 perl的多个(子)版本也没有问题。软件包管理器已经支持perl5.18,5.16,5.14 ...的并行安装,这已经很痛苦了(对于依赖于perl的软件包)。支持所有的子版本将是一种指数式的矫枉过正。这根本不是一种选择。 – Mojca

相关问题