分类: LINUX
2013-11-08 14:03:29
头一次用CentOS,结果就遇到了在用yum时出现了centos使用yum时提示Segmentation fault,这个错误的解决方法网上不少,但是我测试了一下发现不是那么回事,最后几经研究终于搞定
最典型的解决方法莫过于这个贴里提到的
但是很可惜,我测试了没有效果
然后我找了不少文章,发现出现这个问题的关键,在于yum依赖于libz这个软件(该死的依赖,简直比windows下的dll地狱还可怕),而Centos很固执,一直坚持用libz1.2.3,而很多软件又需要更高的版本,于是不少机器上都至少存在两个版本,于是就发生冲突了,但是冲突的解决步骤要求比较高
首先,问题已经发生,请先执行#yum clean all把所有缓存清空,注意,这个命令在问题解决后慎用,否则又必须再来一次,然后,cd /usr/local/lib 进入这个目录,把两个软链接文件清理掉,不删除可能会导致建立的链接无效,
rm libz.so
rm libz.so.1
然后,建立新的libz1.2.3链接库的软链接
ln -s /usr/lib/libz.so.1.2.3 libz.so
ln -s /usr/lib/libz.so.1.2.3 libz.so.1
注意这里的关键,你的链接文件时在/usr/local/lib目录下的,而你要链接的源文件却在/usr/lib,如果弄错了,就可能你找不到源文件,而解决不了问题,也可以把源文件复制到/usr/local/lib里一份,再直接在/usr/local/lib 里建立链接,比如:
ln -sf /usr/local/lib/libz.so.1.2.3 libz.so
ln -sf /usr/local/lib/libz.so.1.2.3 libz.so.1
这里之后,再次运行yum就没问题了