2012-12-21 36 views
2

衝突,在我的CentOS安裝的perl我通過yum install perl打包安裝的perl 6.3服務器安裝如何卸載通過CPAN與百勝

然而,雖然通過cpan CPAN更新我的Perl安裝ExtUtils/Embed到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 

這是因爲它是通過CPAN安裝不知何故,我不能靈活插卡重新編譯。編譯器使用這個新的perl而不是舊的兼容的,它不會給我這個錯誤。

有沒有一種方法可以卸載此5.17.4 Perl?我試圖使用pm-uninstall ..等無濟於事。我甚至嘗試過yum reinstall perl,但更新的perl仍然在使用

+0

重要 - 你做這一切的根源在哪裏?如果沒有,你還沒有覆蓋你的系統Perl。 –

+1

這是一個很好的例子,爲什麼你不應該使用你的系統安裝的perl來開發它,或者安裝你自己的(比如perlbrew)......恐怕現在不是那對你有幫助的。 – pavel

+0

難道你不能重新安裝5.10.1作爲你的系統的Perl嗎? – mob

回答

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`