libvips.so.42
libvips.so.42库文件找不到
在前面music项目中提到在部署项目的时候会出现提示libvips.so.42
文件找不到的问题,由于我部署的服务器是阿里云的ECS
,系统应该是基于CentOS8
和RedHat
的系统,有些东西个人觉得还是不如Ubuntu
方便,这个例子就是,在这个坑里挖了很久,由于在服务器里又部署了其他项目,又很担心在处理这个问题的时候又会导致环境产生改变而造成其他项目的影响
解决方案
其他坑就不提了,反正试过什么remi
第三方,更改源什么之类的,都不行,这里总结下解决方案,那就是Source Code
大法
- 下载
libvips
源代码 - 安装依赖
yum install gcc-c++ glib2-devel libpng-devel libjpeg-devel libtiff-devel expat-devel fftw3-devel libimagequant-devel -y
- 解压后进入主目录
- 执行
meson setup build --prefix /usr/local
,注意这里并非常见的./configure
来进行安装,我还是第一次见meson
这个东西,好像meson
也还要额外进行安装(实在不记得了),如果没有的话就安装下meson
- 进入build目录
cd build
- 进行编译
meson compile
- 进行测试
meson test
- 进行安装
meson install
安装完成
没有问题的话,libvips
就安装完成了,不过要注意的是以上步骤最后会安装在/usr/local/lib64
里面,但是我的项目依旧提示无法找到libvips.so.42
,因为项目默认查找路径是/usr/local/lib
,而不是/usr/local/lib64
,所以,在/usr/local/lib
里面把/usr/local/lib64
的libvips.so.42
连接以下就好了
总结
源代码方式最后大部分问题的终极解决方案还是很暴力的,不过特别重要的还是要看相关的README
和log
日志,这里安装过程是我从来没见过的meson
,但是在README
里是有很详细的描述,如果不看可能压根不知道怎么安装。另外日志系统也提示了很重要的信息,不然我也不知道库文件必须要放在/usr/local/lib
才能起作用。
比起解决问题本身,如何去查找解决问题的方案的能力或许更为重要。
This post is licensed under
CC BY 4.0
by the author.