dnf install -y gcc wget cmake autoconf automake libtool fontconfig
确定版本并获取源代码
如果因为网络问题不能下载源码包,那么请参考本站的其他文章: 如何在境内加速 GitHub 资源的下载以及克隆。
# https://github.com/libjpeg-turbo/libjpeg-turbo/releases
# LIBJPEG_VER="3.0.4"
export LIBJPEG_VER="3.1.2"
cat>/tmp/installer.sh<<EOF
cd /tmp
if [ ! -f libjpeg-turbo-\${LIBJPEG_VER}.tar.gz ]; then
echo "+++++++++++++++++++++++++++++++++下载 libjpeg-turbo 源代码:"
URL="https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/\${LIBJPEG_VER}/libjpeg-turbo-\${LIBJPEG_VER}.tar.gz"
wget --continue "\${URL}"
code=\$?
count=1
MAX_CNT=10
while [ \$code -gt 0 ]; do
if [ \$count -eq \$MAX_CNT ]; then
break
fi
count=\$((\$count + 1))
echo "+++++++++++++++++++++++++++++++++下载失败!重新下载 libjpeg-turbo 源码:"
sleep 1
wget --continue "\${URL}"
code=\$?
done
if [ \$code -gt 0 ]; then
echo "+++++++++++++++++++++++++++++++++libjpeg-turbo 源码包下载失败!"
exit
fi
echo "+++++++++++++++++++++++++++++++++LibJpeg-turbo 源码包下载成功!"
fi
EOF
bash /tmp/installer.sh
给源码压缩包解压缩
cat>/tmp/installer.sh<<EOF
cd /tmp
if [ -d libjpeg-turbo-\${LIBJPEG_VER} ]; then
rm -rf libjpeg-turbo-\${LIBJPEG_VER}
fi
echo "+++++++++++++++++++++++++++++++++解压缩 libjpeg-turbo 源码包:"
tar zxf libjpeg-turbo-\${LIBJPEG_VER}.tar.gz
if [ ! -d "libjpeg-turbo-\${LIBJPEG_VER}" ]; then
echo "+++++++++++++++++++++++++++++++++解压缩文件 libjpeg-turbo-\${LIBJPEG_VER}.tar.gz 失败!"
exit
fi
EOF
bash /tmp/installer.sh
进入解压后得到的目录并进行编译
cat>/tmp/installer.sh<<EOF
echo "+++++++++++++++++++++++++++++++++进入目录 libjpeg-turbo-\${LIBJPEG_VER}"
cd /tmp
cd libjpeg-turbo-\${LIBJPEG_VER}
mkdir build && cd build
echo "+++++++++++++++++++++++++++++++++开始 cmake:"
cmake ..
if [ \$? -gt 0 ]; then
echo "+++++++++++++++++++++++++++++++++LibJpeg-turbo cmake 失败!"
exit
fi
echo "+++++++++++++++++++++++++++++++++开始编译 libjpeg-turbo"
make
if [ \$? -gt 0 ]; then
echo "+++++++++++++++++++++++++++++++++LibJpeg-turbo 编译失败!"
exit
fi
echo "+++++++++++++++++++++++++++++++++执行安装 libjpeg-turbo"
make install
if [ $? -eq 0 ]; then
echo "+++++++++++++++++++++++++++++++++成功安装 libjpeg-turbo!"
else
echo "+++++++++++++++++++++++++++++++++libjpeg-turbo 安装失败!"
exit
fi
# libjpeg-turbo 将安装到 /opt/libjpeg-turbo
EOF
bash /tmp/installer.sh
进行动态库文件的链接操作
cat>/tmp/installer.sh<<EOF
if [ -d "/opt/libjpeg-turbo" ]; then
ln -sf /opt/libjpeg-turbo/lib64/lib*.so* /usr/lib64/
ln -sf /opt/libjpeg-turbo/lib64/lib*.so* /usr/lib/
ln -sf /opt/libjpeg-turbo/lib64/lib*.so* /usr/local/lib64/
ln -sf /opt/libjpeg-turbo/lib64/lib*.so* /usr/local/lib/
echo "export PATH=\"\\\${PATH}:/opt/libjpeg-turbo/bin\"" >>/etc/profile
echo "export LD_LIBRARY_PATH=\"/opt/libjpeg-turbo/lib64:\\\${LD_LIBRARY_PATH}\"" >>/etc/profile
ln -sf /opt/libjpeg-turbo/include/* /usr/include/
source /etc/profile
echo "+++++++++++++++++++++++++++++++++LibJPEG 安装完毕!"
echo "+++++++++++++++++++++++++++++++++移除 LibJPEG 源代码:"
rm -rfv /tmp/libjpeg-turbo-\${LIBJPEG_VER}*
else
echo "+++++++++++++++++++++++++++++++++LibJpeg 编译安装失败!"
exit
fi
echo "+++++++++++++++++++++++++++++++++LibJpeg-turbo 编译安装成功!"
ldconfig -v | grep jpeg
EOF
bash /tmp/installer.sh
校验动态库版本
readelf -d /opt/libjpeg-turbo/lib64/libjpeg.so
readelf -d /usr/local/lib64/libjpeg.so
如果出来的结果类似于以下,则表示 libjpeg-turbo 安装成功:
[root@rockylinux-9 build]# readelf -d /usr/local/lib64/libjpeg.so
Dynamic section at offset 0xb0c58 contains 28 entries:
Tag Type Name/Value
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
0x000000000000000e (SONAME) Library soname: [libjpeg.so.62]
0x000000000000000f (RPATH) Library rpath: [/opt/libjpeg-turbo/lib64]
...