centos7解决 facter: error while loading shared libraries: leatherman_curl.so.1.3.0: cannot open sha...

    本想打算centos7单机安装openstack(参考https://blog.csdn.net/u012999810/article/details/78210014),在执行packstack --allinone出现facter: error while loading shared libraries: leatherman_curl.so.1.3.0: cannot open shared object file: No such file or directory经过ldd /usr/bin/facter发现缺少 leatherman_xxx.so.1.3.0库卸载重装facter,还是一样遇到问题,于是去github下载leatherman动态库,但是没有1.3.0版本的动态库,想着向后兼容的原则,下载最新的动态库应该可以,把所有的 leatherman_xxx.so.1.10.0的动态库软连到 leatherman_xxxx.so.1.3.0,但是又出现boost库的问题,就又去下载boost库,通过yum install boost,结果boost库版本太低,就去下载boost_1_59版本,编译安装。到这里虽然解决动态库问题,但是运行facter直接挂了。

    经过上面折腾,发现leatherman还需要1.3.0版本的,但是GitHub上的leatherman的1.3.0没有动态库,需要自己去生成,这里给出了具体动态库生成步骤(可能有其他更好的解决办法,这里没有找到):

    1、下载leatherman-1.3.0.tar.gz

    2、下载boost_1_59_0.tar.gz的源码

    3、解压leatherman-1.3.0.tar.gz并且进入leatherman-1.3.0。

    4、执行mkdir build

                cd build 

                cmake3 ..(可能遇到curl的头文件找不到,去下载curl源码,然后编译安装即可)

                vim CMakeCache.txt;找到LEATHERMAN_SHARED,修改成为LEATHERMAN_SHARED:BOOL=ON

                make ;make install

   上面的整个过程可能比较麻烦,这里给出编译好的leatherman-1.3.0动态库,直接拷贝到/usr/lib64/目录下

https://pan.baidu.com/s/1JD48rGZPH0hbZflm3EnQzA

提取码:scmj

你可能感兴趣的:(centos7解决 facter: error while loading shared libraries: leatherman_curl.so.1.3.0: cannot open sha...)