实验继续,当执行到命令:deepdive compile && deepdive do probabilities ,出现了以下错误:
上图告诉我们libbz2.so.1.0文件不存在,而且错误中也没告诉我们该文件存储在什么地方,于是我开始在网上搜索资料。
从资料error while loading shared libraries: xxx.so.x" 错误的原因和解决办法 中,可以知道错误的原因有两个,没有该文件或者是路径不对。如下图所示:
我从很多资料上看到,libbz2.so.1.0文件进是在/usr/lib 或 /usr/lib64上。
于是,我先开始按照资料 pbzip2: error while loading shared libraries: libbz2.so.1.0: cannot open shared object file 解决问题,如下图所示:
当我在运行命令:yum install bzip2-libs时,出现了以下问题:
根据资料 centos---运行yum报错:No module named yum ,因为yum基于python写的,是该问题是yum的python版本对应不上目前python环境的版本导致的。 而在之前,应该是我升级过python的版本,所以才会导致以上问题。
根据资料的解决方法,我顺利的解决了问题(当然在这之前,我也尝试了其他的方法),如下图所示:
在我的系统里的修改后的结果如图所示,将第一行#! /usr/bin/python 改为 python2.6(版本好要看自己的系统安装了什么版本,我的系统有python2.6和2.7.7版本)
解决完关于yum的问题,继续解决关于libbz2.so.1.0的问题。
根据资料,我在路径/usr/lib64上继续执行命令yum install bzip2-libs,发现该文件已经存在,于是我开始尝试其他的解决方案。
看来很多资料,很多资料上面是通过建立软连接的方法,来解决问题。
比如,该方法是做一个软链接libbz2.so.1.0,指向已经有的libbz2.so.1.0.6。
如资料 解决:error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No ,也是通过建立软连接的方法解决问题的,如下图所示:
在偶然的翻找中,我发现在路径/lib64下,有libbz2.so.1.0.4文件存在,如图所示:
在/usr/lib64下是这样的:
于是,我尝试做一个软连接,源文件/lib64里的libbz2.so.1.0.4文件,目标文件是/usr/lib64里的libbz2.so.1.0文件,该做法相当于,若想使用/usr/lib64里的libbz2.so.1.0文件,通过软连接,将指向/lib64里的libbz2.so.1.0.4文件,而实际中真正使用/lib64里的libbz2.so.1.0.4文件,这有点类似于指针的用法,不管在哪里建立目标文件,通过软连接,使用的都是源文件。我的做法在路径/usr/lib64下,输入命令:ln -s /lib64/libbz2.1.0.4 /usr/lib64/llibbz2.1.0 ,输入命令:ls -alhtr | grep libbz2.so.1 ,查看已有的软连接,其中红色方框里,是新建立的软连接。如下图所示:
路径/usr/lib64下新建的软连接(蓝色方框里的)如图下图所示,如果软连接没有建立成功,则连接右上方不是箭头,是叉的标志。
解决完以上问题,再输命令:deepdive compile && deepdive do probabilities,出现以下错误:
输入命令:strings /usr/lib/libstdc++.so.6 | grep GLIBCXX ,查看有无GLIBCXX_3.4.15版本,结果如下图所示:
从图片可知,最高的版本是3.4.13,所以出错了。搜索资料,根据这两篇文章可知,下载更高版本的 libstdc++.so,建立软连接,即可解决问题,于是我下载了64位系统的libstdc++.so.6.0.13版本的文件,将它放在桌面上。在建立软连接之前,先查看有没有已存在软连接与即将要建立的软连接重复,于是输入命令:ls -alhtr | grep libstdc.so.6 ,发现libstdc.so.6已经做了软连接,因此,我们应该把这个软连接先删除,再重新建立软连接,如下图所示。
1.输入:rm -rf ./libstdc.so.6 ,删除原有的连接,
2.输入:ln -s /home/lala/Desktop/soft/libstdc.so.6.0.17 /usr/lib64/libstdc.so.6 ,建立新的软连接。
3.输入:ls -alhtr | grep libstdc.so.6,看看软连接是否建立成功。
4.输入:strings /usr/lib/libstdc++.so.6 | grep GLIBCXX,查看有无GLIBCXX_3.4.15版本。
解决以上问题,再输入命令:deepdive compile && deepdive do probabilities ,出现以下错误:
根据出错的文件路径,我查找该文件,应该是该文件损坏了。找了很久,终于在
factors文件里的另一个文件中(factors里就两个文件),找到了fctors.part-1.bin.bz2压缩包,替换了损坏的文件,从而问题得到了解决。
于是,我继续输入命令:deepdive compile && deepdive do probabilities,结果还是有错了,如下图所示:
这个问题也没有任何资料可以参考,打开run.sh文件,也看不出错误。于是我抱着试试的态度,从【1..4.. 实体抽取及候选实体对⽣生成】的命令:deepdive compile && deepdive do company_mention 开始,把每个命令都重新执行了一遍,结果。。。。。成功了,实验结果如下图所示:
所以,实验需要不断的尝试,才会不断地成功。
网友评论