CentOS6升级g++4.8时出现libpython2.7.so.1.0未找到错误
解决CentOS 6升级g++ 4.8时yum的Python库错误
我之前在CentOS 6上尝试升级到g++ 4.8时,也碰到过完全一样的libpython2.7.so.1.0: cannot open shared object file错误,大概率是系统默认Python环境被改动导致yum依赖出问题了,给你几个亲测有效的解决方法:
方法1:临时修复Python库路径
首先找到缺失的库文件位置:
find / -name libpython2.7.so.1.0 2>/dev/null
如果能找到这个文件(比如在/usr/local/lib或者自定义的Python安装目录),临时把它的路径加到系统库搜索路径里:
export LD_LIBRARY_PATH=/path/to/your/python/lib:$LD_LIBRARY_PATH
然后重新运行yum安装命令,应该就能正常执行了。如果想永久生效,把上面的export命令添加到/etc/profile或者~/.bashrc文件末尾,再执行source /etc/profile刷新环境。
方法2:恢复系统默认的Python 2.6
CentOS 6原生依赖Python 2.6,如果你之前手动升级过Python到2.7,很可能会破坏yum的运行环境。可以重新安装系统默认的Python包:
- 下载对应架构的Python 2.6 rpm包(以x86_64为例):
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/python-2.6.6-68.el6_10.x86_64.rpm
- 强制重新安装:
rpm -ivh --force python-2.6.6-68.el6_10.x86_64.rpm
- 验证yum是否恢复正常:
yum --version
确认没问题后,再继续执行devtoolset-2的安装命令。
方法3:用Software Collections(SCL)更稳妥地安装
devtoolset本身就是CentOS官方的软件集合,通过SCL安装不会替换系统默认的工具链,也能避免环境冲突:
- 先安装SCL仓库:
yum install centos-release-scl
- 直接安装所需的devtoolset-2包:
yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++ devtoolset-2-gcc-gfortran
- 启用g++ 4.8环境(临时生效):
scl enable devtoolset-2 bash
如果想每次登录都自动启用,把上面的命令添加到~/.bashrc文件里即可。
注意事项
- CentOS 6的devtoolset-2是官方支持的g++ 4.8版本,不要随便用第三方源,避免兼容性问题;
- 尽量不要修改系统默认的Python版本,yum对Python版本依赖很严格,改动后容易出现各种奇怪的错误。
内容的提问来源于stack exchange,提问作者Ray Salemi
相关产品推荐
相关产品推荐

