Post

libvips.so.42

libvips.so.42库文件找不到

在前面music项目中提到在部署项目的时候会出现提示libvips.so.42文件找不到的问题,由于我部署的服务器是阿里云的ECS,系统应该是基于CentOS8RedHat的系统,有些东西个人觉得还是不如Ubuntu方便,这个例子就是,在这个坑里挖了很久,由于在服务器里又部署了其他项目,又很担心在处理这个问题的时候又会导致环境产生改变而造成其他项目的影响

解决方案

其他坑就不提了,反正试过什么remi第三方,更改源什么之类的,都不行,这里总结下解决方案,那就是Source Code大法

  1. 下载libvips源代码
  2. 安装依赖yum install gcc-c++ glib2-devel libpng-devel libjpeg-devel libtiff-devel expat-devel fftw3-devel libimagequant-devel -y
  3. 解压后进入主目录
  4. 执行meson setup build --prefix /usr/local,注意这里并非常见的./configure来进行安装,我还是第一次见meson这个东西,好像meson也还要额外进行安装(实在不记得了),如果没有的话就安装下meson
  5. 进入build目录cd build
  6. 进行编译meson compile
  7. 进行测试meson test
  8. 进行安装meson install

安装完成

没有问题的话,libvips就安装完成了,不过要注意的是以上步骤最后会安装在/usr/local/lib64里面,但是我的项目依旧提示无法找到libvips.so.42,因为项目默认查找路径是/usr/local/lib,而不是/usr/local/lib64,所以,在/usr/local/lib里面把/usr/local/lib64libvips.so.42连接以下就好了

总结

源代码方式最后大部分问题的终极解决方案还是很暴力的,不过特别重要的还是要看相关的READMElog日志,这里安装过程是我从来没见过的meson,但是在README里是有很详细的描述,如果不看可能压根不知道怎么安装。另外日志系统也提示了很重要的信息,不然我也不知道库文件必须要放在/usr/local/lib才能起作用。

比起解决问题本身,如何去查找解决问题的方案的能力或许更为重要。

This post is licensed under CC BY 4.0 by the author.