2

在我的 centos 6.3 服务器上,我通过yum install perlpackager install安装了 perl

但是,在ExtUtils/Embed通过cpancpan 安装时,我的 Perl 更新到了 v5.17.4,而它应该是 5.10.1-127(可能是通过依赖项的某种方式,因为我使用了强制安装方法)。

所以现在我遇到了几十个问题,比如错误:

../x86_64-linux/CORE/libperl.a(op.o): relocation R_X86_64_32S against `PL_sv_yes' can not be used when making a shared object; recompile with -fPIC

我无法用 fpic 重新编译,因为它是通过 cpan 以某种方式安装的。编译器正在使用这个新的 perl 而不是旧的兼容的,它不会给我这个错误。

有没有办法可以卸载这个 5.17.4 perl?我尝试使用pm-uninstall.. 等无济于事。我什至尝试yum reinstall perl过更新的 perl 仍在使用中

4

1 回答 1

3

这不会擦掉所有东西,但应该让你重新开始。

记录你安装的 perl rpm:

 rpm -qa | grep ^perl > /tmp/perlpkgs

强制删除它们:

 for i in `cat /tmp/perlpkgs` ; do rpm -ev --nodeps $i ; done

找出 perl 的安装位置,以防 cpan 将其放入/usr/local

 which perl

如果它打印/usr/local/bin/perl然后P=/usr/local; 除此以外P=/usr

删除任何 perl 二进制文件等,

 rm -fr $P/bin/perl* $P/lib*/perl* $P/share/man/man?/perl*
 rm -fr $P/share/man/man?/*.3pm* $P/share/perl*

重新安装所有原始软件包:

 yum install `cat /tmp/perlpkgs`
于 2012-12-21T20:27:23.573 回答