ubuntu中打开vim出现错误:/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0: undefined symbol: XML_SetHashSalt

ubuntu中打开vim出现错误:/usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0: undefined symbol: XML_SetHashSalt

不知道操作了啥之后vim不能用了,网上搜罗一大圈,找到解决方案:

参考链接。https://blog.csdn.net/J_H_C/article/details/84961219

 

很久没有用ubuntu了,今天打开ubuntu,使用vim时突然出现错误如下:

后来在网上查了查发现是因为我在ubuntu上装了oracle导致的错误,因为装oracle时改变了LD_LIBRARY_PATH的值。其值现在是:

具体原因如下:

执行命令 ldd /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0,得到结果如下:

从上图中我们发现libexpat.so.1的路径变成了oracle目录下的,这就是我们安装oracle更改LD_LIBRARY_PATH造成的结果。本来应该使用系统中的libexpat.so.1而不是使用oracle中的libexpat.so.1,其路径如下图所示

解决办法:

     方法一:直接将/home/cjh/tools/oracle11g/product/11.2.0/dbhome_1/lib/libexpat.so.1文件改名,这样子就能将其隐藏。改名命令如下:

      mv libexpat.so.1 libexpat.so.1.NOFIND

这种办法比较粗暴总感觉会对oracle有影响,虽然我刚开始用的就是这种做法,而且还没发现有什么问题~~

     方法二:上面也说了出现这个问题的原因是动态库调错了。这是由于在安装oracle时设置LD_LIBRARY_PATH设置的有问题,我直接设置成了oracle安装路径下的lib,如下:

需要将其修改成如下:

这里得说明两点:

1)上面设置的其实就是系统在调用链接库的时候,可以从/lib、/lib/x86_64-linux-gnu、/home/cjh/lib、/usr/lib、/usr/lib:/home/cjh/tools/oracle11g/product/11.2.0/dbhome_1/lib这些路径下查找(cjh是我的用户名,这里我尽量把系统中有lib的目录都包含了)。我一开始没加/lib/x86_64-linux-gnu,以为包含了/lib路径就行了,然而没有起作用。这可能和系统在选择先遍历那个路径的方式有关,所以尽量把路径写到文件所在路径,而且要写在oralce的lib之前(写在后面亲测有没效果)。

2)我修改的是用户下的.bashrc文件,因为我安装oracle时就是在这个文件里面设置的。如果你是在其他文件设置的,可以根据自己的实际情况进行修改。对于.bashrc、.profile、.bash_profile、profile之间的区别可以参考这篇文章:

https://blog.csdn.net/gatieme/article/details/45064705。记住修改完之后要执行 source ~/.bashrc,让bash重新读取这个文件,而且这个命令只对一个终端有用,每一个终端都要执行,你可以重新打开终端。

 

用第一种方法粗暴解决了。过了一天发现vim又不能用了,还是这个问题,说明方法1治标不治本啊。

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值