。 yumコマンドに問題があります。このサイトに記載されている問題とまったく同じ問題のようです。 CentOS 6.2では、Yumが破損してPythonモジュールをインポートするのに問題があります。
yum コマンドを実行するたびに発生するエラーです。
[root@Server1~]# yum list
There was a problem importing one of the
Python modules required to run yum. The error leading to this problem
was:
/lib64/libldap-2.4.so.2: undefined symbol: ber_sockbuf_io_udp
Please install a package which provides this module, or verify that
the module is installed correctly.
It's possible that the above module doesn't match the current version
of Python, which is:
2.6.6 (r266:84292, Nov 21 2013, 10:50:32) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)]
If you cannot solve this problem yourself, please go to the yum faq
at: http://yum.baseurl.org/wiki/Faq
ただし、次の場所にある#python2を実行できます。/usr/bin/python2
[root@Server1~]# python2
Python 2.6.6 (r266:84292, Nov 21 2013, 10:50:32)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
\>>>
yumがインポートするモジュールは次のとおりです。
ベストアンサー1
あなたがしなければならないことはldd /lib64/libldap-2.4.so.2
、「未定義の参照」の出力をチェックし、未定義のライブラリを提供するパッケージを探し、リポジトリを探し、ライブラリを提供するrpmを手動でダウンロードしてからrpm -i <missing>.rpm
。
問題は、libldapのバグやパッケージングシステムへのユーザーの手動介入によって発生する可能性が高いです。
ついに私の近くにRHEL6があるので、サインを探そうfor lib in /lib64/*.so.*; do if nm -D $lib|grep ber_sockbuf_io_udp; then echo $lib; fi; done
返品:
0000003e2240e460 D ber_sockbuf_io_udp
/lib64/liblber-2.4.so.2
0000003e2240e460 D ber_sockbuf_io_udp
/lib64/liblber-2.4.so.2.5.6
U ber_sockbuf_io_udp
/lib64/libldap-2.4.so.2
U ber_sockbuf_io_udp
/lib64/libldap-2.4.so.2.5.6
U ber_sockbuf_io_udp
/lib64/libldap_r-2.4.so.2
U ber_sockbuf_io_udp
/lib64/libldap_r-2.4.so.2.5.6
したがって、シンボルは私のシステムにインストールされている/lib64/liblber-2.4.so.2で定義されています。インストール後にこれを行うことができます。rpm -qf /lib64/liblber-2.4.so.2
教えてください。
openldap-2.4.23-32.el6_4.1.x86_64
したがって、これはパッケージの一部である必要があります。このライブラリがファイルシステムに存在することを確認する必要があります。そうでない場合は、openldap パッケージをダウンロードして再インストールしてください。存在する場合は、Pythonに問題があるのです。