/usr/lib/libreadline.so.5: undefined symbol: PC 错误的处理方法
来源:互联网 发布:精易编程助手怎么用 编辑:程序博客网 时间:2024/05/23 20:55
最近服务器挂掉将近一周,让X讯和VMware的运维人员给我处理,硬是搞不定。
最后还是Linux的厂商帮俺们搞定,结束我的苦逼酱油日子。
操作系统:Suse linux 11 64bit
硬件环境:就不多说了,反正是搭建在VM上面的。
一、现象:
1. 作为远程ssh连接,最基本的现象就是无法连接该虚拟主机了。
2. 在物理主机上使用vmware打开该虚拟机,会发现机器开机时候卡在第二屏(参看文末附件“现象01.png”)。
3. 使用F2快捷键进入命令行模式,是可以看到具体卡在哪里的(“现象02.png”)。
4. 提示信息如下:
/bin/sh: symbol lookup error: /usr/lib/libreadline.so.5: undefined symbol: PC
二、分析:
1. 翻阅资料发现libreadline是系统自带的库,作为一个底层库,非常多的库都依赖于这个库。(具体参考连接:http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html )
2. 因此在开机的时候系统bash启动某些服务的时候调用了这个库,而这个库里面有“PC”字样的符号:
3. 这个些符号是在保留libncurses或libtermcap 之中的:
4. 但是libreadline库默认是不包含这个libncurses库的(只依赖libc库):
所以在启动的过程中,bash调用这个库(libreadline)之后就报错了。
三、解决:
1. 方法一(目前采取的办法):将libreadline库删掉。
这个方法非常暴力,而且也是suse工程师采用的办法,仅仅将涉及的库文件删除掉就完事了。(目前1节点的时间已经被暴力干掉,2节点文件我保存了下来了,在/tmp目录,附件是两个文件,另外还有两个软链接,在windows下无法展现。)
但是该方法是有后遗症的:如果在编译某些程序的时候需要运行libreadline,则会提示无法通过。
并且后续运行,根据以往文献,gome等界面均是依赖该库文件的,因此gome等图形界面编辑器会无法使用(是否还有其它工具也是依赖于它则不得而知)
2. 方法二(风险系数较高,但如果要使用该库,只能用这方法):重新编译libreadline,链接libncurses库。
步骤:
(0)将文件拷贝回/usr/local/lib 目录: cp /tmp/libreadline* /usr/local/lib/ P.S.:严禁使用mv!(此步也可以不做)
(1)rpm -qa |grep readline 查看是否安装,以及安装版本。
(2)下载:readline-5.2.tar.gz 并解压。
(3)修改./shlib/Makefile.in 的 SHLIB_LIBS 为: SHLIB_LIBS = -lncurses
(4)./configure --prefix=/usr --with-ncurses #生成Makefile
(5)make
(6)make install
(7)编译完成后查看是否已经链接进去:readelf -a /usr/local/lib/libreadline.so.5 | grep NEEDED
欢迎指正。
参考文章:http://blog.chinaunix.net/uid-20587912-id-405184.html
- /usr/lib/libreadline.so.5: undefined symbol: PC 错误的处理方法
- /usr/lib/libreadline.so.5: undefined symbol: PC 导致suse 无法启动
- 错误: symbol lookup error: /usr/local/lib/libreadline.so.6: undefined&
- ubuntu:gpg: symbol lookup error: /usr/local/lib/libreadline.so.6: undefined symbol: UP
- symbol lookup error: /home/caffe/anaconda/lib/libreadline.so.6: undefined symbol: PC
- lua,安装readline库后,zypper报zypper: symbol lookup error: /usr/local/lib/libreadline.so.6: undefined symb
- perl: symbol lookup error: /usr/local/lib/libtdsodbc.so: undefined symbol: libiconv_open的解决办法
- ImportError: /usr/lib/panda3d/libpandaexpress.so: undefined symbol: PyUnicodeUCS4_AsWideChar
- ImportError: /usr/lib/liblapack.so.3gf: undefined symbol: ATL_chemv
- ImportError: /usr/lib/liblapack.so.3: undefined symbol: ATL_chemv
- 已解决:make clean bc: symbol lookup error: /home/data/anaconda2/lib/libreadline.so.6: undefined symbol:
- symbol lookup error: /usr/local/lib/libsvn_subr-1.so.0: undefined symbol: apr_atomic_xchgptr
- ./browse: symbol lookup error: /opt/usr/lib/libtitle.so.1: undefined symbol: _Z17t_trial_codePcS_
- 关于so硬链接至/usr/lib及/usr/local/lib下的处理方法
- /usr/lib/python2.6/site-packages/pycurl.so: undefined symbol: CRYPTO_set_locking_callback
- ImportError–usr-lib-liblapack.so.3- undefined symbol- ATL_chemv 解决方法
- ImportantError:/usr/local/lib/python2.7/dist-packages/gnuradio/uhd/_uhd_swig.so:undefined symbol:_ZN
- AttributeError: /usr/lib/x86_64-Linux-gnu/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup
- select标签的回显
- AS3主流游戏引擎
- 程序员技术练级攻略
- C++ 标准IO库 - 文件流操作【ifstream ofstream fstream】
- stl文件格式
- /usr/lib/libreadline.so.5: undefined symbol: PC 错误的处理方法
- HTM页面获得本机时间
- 正则。IP验证
- C以二进制读、写、文本
- HTML下拉框、文本框、复选框!
- GDB调试命令!
- 使用libx264将I420编码为H.264
- div隐藏输入框
- FIFO通信 htonl 和memcpy的用法