centos的世界里面,直接使用yum是最正确的选择。但是,本文中却没有选择yum。主要基于以下考虑:pngquant提示libpng已经更新到1.6.1了,但是yum上安装的libpng-devel版本号是1.5.13

苏南大叔:centos系统,libpng如何通过源码编译安装? - centos-libpng
centos系统,libpng如何通过源码编译安装?(图5-1)

本文测试环境:centos@7.7.1908,libpng@1.6.37。注意,这里先阐述苏南大叔的观点:如果您不是非要安装最新版本的libpng的话,请使用yum install,简单靠谱。

本文似乎弄混了libpnglibpng-devel的区别,大家请无视相关言论。哈哈~~

下载源码

libpng的官方网站是:

苏南大叔:centos系统,libpng如何通过源码编译安装? - libpng-homepage
centos系统,libpng如何通过源码编译安装?(图5-2)

截至到发稿,最新的libpng@1.6.37源码下载地址是:

苏南大叔:centos系统,libpng如何通过源码编译安装? - libpng-sourcecode
centos系统,libpng如何通过源码编译安装?(图5-3)

安装编译

在编译安装libpng之前,可能需要先卸载掉以前的相关版本,例如:

yum remove libpng-devel

或者安装libpng-devel

yum install libpng-devel
删除libpng-devel之后,可能会影响其它软件的使用,报错找不到libpng.so.5文件。libpng-devel应该存放的是编译所使用的.so文件的。

和很多其它的开源软件一样,编译安装libpng的画,也需要先给个写权限,否则后续编译命令是不能继续执行的。

sudo chmod -R 777 ./

苏南大叔:centos系统,libpng如何通过源码编译安装? - libpng-make
centos系统,libpng如何通过源码编译安装?(图5-4)

然后执行编译命令,当然编译命令也是非常常规的命令。编译的命令如下:

./configure
make
make install

安装完成后,libpng就被安装到lib目录下面了。当然,对于苏南大叔这边的需求来说,后续工作就是去让pngquant去识别最新的libpng了。

注意事项

  • 本文只适合于libpng-devel安装到的版本,并不是最新的版本时。随着时间的流逝,这个问题肯定会被修正的。所以,本文不一定是你最好的选择。
  • 安装新版本libpng之前,最好先卸载历史版本。否则可能会相互影响,导致找不到.so文件之类的奇怪错误发生。

这里有个命令,可以给出些许选择时机的建议。

yum provides libpng

苏南大叔:centos系统,libpng如何通过源码编译安装? - libpng-provides
centos系统,libpng如何通过源码编译安装?(图5-5)

相关链接

总结

pngquant正常工具依赖于libpng,而且在使用的时候会去检测libpng的最新版本号。所以,如何安装到最新版本的libpng就是个值得研究的话题。

更多文章,请点击苏南大叔的博客链接:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。