我正在对一组150台服务器进行一系列更改。 所有系统都能够通过yum
成功下载和安装一组特定的RPM,除了一个。 一个这个特定的系统,除了“干净”之外的所有yum命令将以下内容转储到屏幕上:
[root@dev1v ~]# yum install sssd Loaded plugins: rhnplugin /usr/lib64/python2.6/xmlrpclib.py:612: DeprecationWarning: The xmllib module is obsolete. Use xml.sax instead. import xmllib # lazy subclassing (!) Traceback (most recent call last): File "/usr/bin/yum", line 29, in <module> yummain.user_main(sys.argv[1:], exit_code=True) File "/usr/share/yum-cli/yummain.py", line 285, in user_main errcode = main(args) File "/usr/share/yum-cli/yummain.py", line 136, in main result, resultmsgs = base.doCommands() File "/usr/share/yum-cli/cli.py", line 434, in doCommands self._getTs(needTsRemove) File "/usr/lib/python2.6/site-packages/yum/depsolve.py", line 99, in _getTs self._getTsInfo(remove_only) . . . File "/usr/lib/python2.6/site-packages/yum/repoMDObject.py", line 124, in __init__ self.parse(srcfile) File "/usr/lib/python2.6/site-packages/yum/repoMDObject.py", line 140, in parse parser = iterparse(infile) File "/usr/lib/python2.6/site-packages/yum/misc.py", line 1169, in cElementTree_iterparse _cElementTree_import() File "/usr/lib/python2.6/site-packages/yum/misc.py", line 1164, in _cElementTree_import import cElementTree ImportError: No module named cElementTree
我试过了:
expat
, python
一部分等 有什么想法吗?
修正:
显然,这个系统上的Oracle安装将Oracle的path注入到LD_LIBRARY_PATH中。
[root@dev1v etc]# export declare -x LD_LIBRARY_PATH="/home/oracle/app/oracle/product/11.2.0/client_1/lib"
取消设置variables允许yum再次正常工作。
嗯,在Python 2.6中,cElementTree位于/usr/lib64/python2.6/xml/etree/cElementTree.py中,它是python包的一部分。 您在yum代码中到达import cElementTree
的事实表明xml.etree
似乎丢失。
尝试通过手动下载rpm并使用rpm -Uvh
重新安装python。
如果这不起作用,如果您在python shell中import xml.etree.cElementTree
会发生什么? rpm --verify python
说什么?
我也看到有人通过将Oracle的lib/
path放在/etc/ld.so.conf.d
引起这个问题
使用:
echo /opt/oracle/app/product/11.2.0/dbhome_1/lib/> /etc/ld.so.conf.d/oracle.conf
通过删除/etc/ld.so.conf.d/oracle.conf
解决了这个问题。
最近,我解决了这个问题,如下所示:(操作系统:安装Oracle的CentOS 6.3)。
编辑/etc/profile
并findexport LD_LIBRARY_PATH
行(如果存在)。
在$ORACLE_HOME/lib
之前添加/lib64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib64:$ORACLE_HOME/lib:/lib:/usr/lib:/usr/lib/oracle/11.2/client/lib
以root身份注销并重新login。
declare -x
没有工作。
这对我有效。
[root@host ~]# unset LD_LIBRARY_PATH
如果在/etc/ld.so.conf中定义了任何variables,则删除它并运行#ldconfig命令重新创buildldcaching。
[root@host ~]# ldconfig
确认Python库现在链接到正确的/lib64/libexpat.so.1库。
[root@host ~]# ldd /usr/lib64/python2.6/lib-dynload/pyexpat.so
取消设置LD_LIBRARY_PATH,ldconfig,ldd /usr/lib64/python2.6/lib-dynload/pyexpat.so
正如在https://serverfault.com/a/686667/431469中提到的,这对我有效。