目录
显示
本文的主要内容是:在 Rocky Linux 9 / CentOS Stream 9 系统下通过源代码进行编译安装 GD 库。
GD 全称 “GD Graphics (Draw) Library”(GD 图形(绘图)库),可以让程序员动态地创建图形图像。
由于在部署 LNMP 架构时业务功能的需求,在 Nginx 编译源代码时需要 GD 库的支持。
前提条件
本次从源代码编译安装的 LibGD 要支持 WebP 功能,因此在编译 LibGD 之前要先编译安装 libwebp 库。
具体请见: Rocky Linux 9 编译安装 libWebP 库 。
安装 REMI 源
export MAX_CNT=10
cat>/tmp/installer.sh<<EOF
echo "+++++++++++++++++++++++++++++++++获取 REMI 软件源仓库:"
dnf install -y https://mirrors.aliyun.com/remi/enterprise/remi-release-9.rpm
code=\$?
count=1
while [ \$code -gt 0 ]; do
if [ \$count -eq \$MAX_CNT ]; then
break
fi
count=\$((\$count + 1))
echo "+++++++++++++++++++++++++++++++++获取 REMI 软件源失败!现重试:"
dnf install -y https://mirrors.aliyun.com/remi/enterprise/remi-release-9.rpm
code=\$?
done
if [ \$code -gt 0 ]; then
echo "+++++++++++++++++++++++++++++++++获取 REMI 源失败!"
exit
fi
echo "+++++++++++++++++++++++++++++++++更换 REMI 源为国内源:"
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://rpms.remirepo.net|baseurl=https://mirrors.aliyun.com/remi|g' \
-e 's|^baseurl=http://rpms.remirepo.net|baseurl=https://mirrors.aliyun.com/remi|g' \
-i.bak /etc/yum.repos.d/remi*
echo "+++++++++++++++++++++++++++++++++清理及重新生成 DNF 缓存:"
sleep 5
dnf clean all
dnf makecache
dnf repolist
echo "+++++++++++++++++++++++++++++++++升级系统软件:"
dnf update -y
EOF
bash /tmp/installer.sh
安装依赖
dnf install -y wget autoconf automake libtool freetype-devel fontconfig \
libpng-devel libtiff-devel freetype-devel fontconfig-devel libpng libtiff \
libavif-devel libavif-tools
下载 libgd 的源代码
如果因为网络问题不能下载源码包,那么请参考本站的其他文章: 如何在境内加速 GitHub 资源的下载以及克隆。
cd /tmp
# 如果不存在,则创建它
## git clone https://github.com/libgd/libgd.git
# 获取最新版本: https://github.com/libgd/libgd/releases/
export LIBGD_VER=2.3.3
cat>/tmp/installer.sh<<EOF
cd /tmp
if [ ! -f libgd-\${LIBGD_VER}.tar.gz ]; then
echo "+++++++++++++++++++++++++++++++++下载 LibGD 源代码包:"
wget --continue https://github.com/libgd/libgd/releases/download/gd-\${LIBGD_VER}/libgd-\${LIBGD_VER}.tar.gz
code=\$?
count=1
while [ \$code -gt 0 ]; do
if [ \$count -eq \$MAX_CNT ]; then
break
fi
count=\$((\$count + 1))
rm -f libgd-\${LIBGD_VER}.tar.gz*
echo "+++++++++++++++++++++++++++++++++LibGD 源代码包下载失败!现重新下载:"
sleep 1
wget --continue https://github.com/libgd/libgd/releases/download/gd-\${LIBGD_VER}/libgd-\${LIBGD_VER}.tar.gz
code=\$?
done
if [ \$code -eq 0 ]; then
echo "+++++++++++++++++++++++++++++++++LibGD 源代码包文件下载成功!"
else
echo "+++++++++++++++++++++++++++++++++LibGD 源代码包文件下载失败!"
exit
fi
fi
if [ -f libgd-\${LIBGD_VER}.tar.gz ]; then
echo "+++++++++++++++++++++++++++++++++解压缩 libgd 的源代码包!"
tar zxf libgd-\${LIBGD_VER}.tar.gz
fi
EOF
bash /tmp/installer.sh
从源代码编译安装
cat>/tmp/installer.sh<<EOF
cd /tmp
if [ -d libgd-\${LIBGD_VER} ]; then
cd libgd-\${LIBGD_VER}
echo "+++++++++++++++++++++++++++++++++初始化 LibGD 安装过程:"
./bootstrap.sh
if [ \$? -gt 0 ]; then
echo "+++++++++++++++++++++++++++++++++初始化失败!"
exit
fi
echo "+++++++++++++++++++++++++++++++++LibGD 编译条件开始配置:"
./configure --with-webp --with-jpeg --with-png --with-tiff --with-avif
if [ \$? -gt 0 ]; then
echo "+++++++++++++++++++++++++++++++++LibGD 配置失败!"
exit
fi
echo "+++++++++++++++++++++++++++++++++开始编译 libgd:"
make
if [ \$? -gt 0 ]; then
echo "+++++++++++++++++++++++++++++++++LibGD 编译失败!"
exit
fi
echo "+++++++++++++++++++++++++++++++++开始安装 LibGD:"
sleep 5
make install
if [ \$? -gt 0 ]; then
echo "+++++++++++++++++++++++++++++++++LibGD 安装失败"
exit
fi
ln -sf /usr/local/lib/libgd.so* /usr/lib64/
echo "+++++++++++++++++++++++++++++++++LibGD 编译安装成功!"
fi
echo "+++++++++++++++++++++++++++++++++删除 LibGD 的源代码包和目录:"
sleep 5
rm -rfv /tmp/libgd-\${LIBGD_VER}*
EOF
bash /tmp/installer.sh
创建 LibGD 动态库的软链接
ln -sf /usr/local/lib/libgd.so* /usr/lib64/
校验动态文件信息
readelf -d /usr/local/lib/libgd.so /usr/lib64/libgd.so.3
命令执行结果的前面几行信息完全匹配,就表示 LibGD 安装成功。
后记
本文是关于如何在 Rocky Linux 9 / CentOS Stream 9 下编译源代码安装最新稳定版 LibGD (GD 库)的手把手教程。
鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,欢迎互相探讨,一起学习,共同进步。
本文章可以转载,但是需要说明来源出处!
本文使用的部分图片来源于网上,若是侵权,请与本文作者联系删除: admin@icxzl.com