imagemagick已发布7.1.0-4版本, 官方提供的 rpm 安装包基于 centos8.x 构建, 奈何我们生产环境是 centos7.9版本, 只能源码安装了 安装过程依赖较多, 折腾了四天才搞定 docker 镜像, 这里记录下安装编译过程
我这里需要 gif, png, jpeg, webp, avif, heic 等格式 所以依赖多, 不需要可以酌情减少
#设置环境变量
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib64/pkgconfig:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64
export LD_LIBRARY_PATH
### install dependence
yum install -y fftw fftw-devel fftw-devel bzip2 bzip2-devel freetype-devel libjpeg-devel libpng-devel libtiff-devel giflib-devel zlib-devel ghostscript-devel djvulibre-devel libwmf-devel jasper-devel libX11-devel libXext-devel libXt-devel lcms-devel libxml2-devel librsvg2-devel OpenEXR-devel openjpeg openjpeg-devel openjpeg2 openjpeg2-devel openjpeg2-libs gcc gcc-c++ make cmake automake libtool libtool-ltdl-devel lcms2 lcms2-devel LibRaw LibRaw-devel
### install zlib
wget https://nih.at/libzip/libzip-1.2.0.tar.gz
tar -zxvf libzip-1.2.0.tar.gz
cd libzip-1.2.0
./configure
make && make install
### install zstd
https://github.com/facebook/zstd/releases
wget https://github.com/facebook/zstd/releases/download/v1.5.0/zstd-1.5.0.tar.gz
tar -zxvf zstd-1.5.0.tar.gz
cd zstd-1.5.0
make && make install
### install djvu图片 可选
http://djvu.sourceforge.net/
https://sourceforge.net/projects/djvu/files/DjVuLibre/3.5.28/djvulibre-3.5.28.tar.gz/download
### install lqr-1
wget https://download.imagemagick.org/ImageMagick/download/delegates/liblqr-1-0.4.2.tar.bz2
tar -xjf liblqr-1-0.4.2.tar.bz2
cd liblqr-1-0.4.2
./autogen.sh && ./configure && make && make install
### libwebp
https://github.com/webmproject/libwebp
wget https://github.com/webmproject/libwebp/archive/refs/tags/v1.2.1.tar.gz
tar -zxvf v1.2.1.tar.gz
cd v1.2.1
./autogen.sh && ./configure && make && make install
libgvc 无必要
#### libheif 所需依赖
x265
依赖 nasm
http://logcenter.int.yidian-inc.com/superset/welcome?filters=%5B%5D&pageIndex=0&sortColumn=changed_on_delta_humanized&sortOrder=desc
wget https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz
tar -zxvf nasm-2.13.03.tar.gz
cd nasm-2.13.03
./autogen.sh && ./configure && make && make install
x265 install
https://bitbucket.org/multicoreware/x265_git/downloads/
wget https://bitbucket.org/multicoreware/x265_git/downloads/x265_3.3.tar.gz
tar -zxvf x265_3.3.tar.gz
cd x265_3.3/build/linux
./make-Makefiles.bash
make && make install
或者:
cmake -G "Unix Makefiles" ../../source && make && make install
#aom avif encoder decoder
https://aomedia.googlesource.com/aom/
https://centos.pkgs.org/7/epel-x86_64/libaom-3.1.1-1.el7.x86_64.rpm.html
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libaom-3.1.1-1.el7.x86_64.rpm
wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/l/libaom-devel-3.1.1-1.el7.x86_64.rpm
rpm -ivh libaom-3.1.1-1.el7.x86_64.rpm
rpm -ivh libaom-devel-3.1.1-1.el7.x86_64.rpm
libde265
wget https://github.com/strukturag/libde265/releases/download/v1.0.8/libde265-1.0.8.tar.gz
tar -zxvf libde265-1.0.8.tar.gz
cd libde265-1.0.8
./autogen.sh && ./configure && make && make install
libheif 安装
wget https://github.com/strukturag/libheif/releases/download/v1.12.0/libheif-1.12.0.tar.gz
tar -zxvf libheif-1.12.0.tar.gz
cd libheif-1.12.0
./autogen.sh && ./configure && make && make install
magick install
https://download.imagemagick.org/ImageMagick/download/
ImageMagick-7.1.0-4.tar.gz
tar -zxvf ImageMagick-7.1.0-4.tar.gz
cd ImageMagick-7.1.0-4
./configure && make && make install
docker 镜像代码参考
# go镜像1.15.6 版本 基于centos7.9构建
#name: docker2.yidian.com:5000/publish/image-go1.15.6-imagemagick7.1.0:v1.0
#基类镜像 FROM 依赖基础 centos7.9镜像 这里依赖的我司7.9版本 不粘贴了
FROM xxxxx
MAINTAINER jeevi <jeevi@jeevi.com>
ENV PATH $PATH:/usr/local/go/bin/
ENV TZ Asia/Shanghai
ENV SHELL /bin/bash
ENV export GOROOT=/usr/local/go
## pkgconfig dir env
ENV PKG_CONFIG_PATH $PKG_CONFIG_PATH:/usr/lib64/pkgconfig:/usr/local/lib/pkgconfig
ENV export PKG_CONFIG_PATH
## dynamic load path
ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64
ENV export LD_LIBRARY_PATH
## mount dir
ADD package/ /opt/
WORKDIR /
RUN yum install -y epel-release \
&& yum makecache \
&& mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup \
&& curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo \
&& sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo \
&& yum makecache \
&& yum install -y fftw fftw-devel fftw-devel bzip2 bzip2-devel freetype-devel libjpeg-devel libpng-devel libtiff-devel giflib-devel zlib-devel ghostscript-devel djvulibre-devel libwmf-devel jasper-devel libX11-devel libXext-devel libXt-devel lcms-devel libxml2-devel librsvg2-devel OpenEXR-devel openjpeg openjpeg-devel openjpeg2 openjpeg2-devel openjpeg2-libs gcc gcc-c++ make cmake automake libtool libtool-ltdl-devel lcms2 lcms2-devel LibRaw LibRaw-devel \
&& cd /opt/magickdepend/ && yum localinstall automake-1.13.4-3.el7.noarch.rpm \
# install zlib
&& cd /opt/magickdepend/ && tar -zxvf libzip-1.2.0.tar.gz && cd libzip-1.2.0 && ./configure && make && make install \
# install zstd
&& cd /opt/magickdepend/ && tar -zxvf zstd-1.5.0.tar.gz && cd zstd-1.5.0 && make && make install \
# install liblqr
# && cd /opt/magickdepend/ && tar -xjf liblqr-1-0.4.2.tar.bz2 && cd liblqr-1-0.4.2 && ./configure && make && make install \
# install libwep
&& cd /opt/magickdepend/ && tar -zxvf libwebp-v1.2.1.tar.gz && cd libwebp-1.2.1 && ./autogen.sh && ./configure && make && make install \
# install nasm
&& cd /opt/magickdepend/ && tar -zxvf nasm-2.13.03.tar.gz && cd nasm-2.13.03 && ./autogen.sh && ./configure && make && make install \
# install x265
&& cd /opt/magickdepend/ && tar -zxvf x265_3.3.tar.gz && cd /opt/magickdepend/x265_3.3/build/linux && cmake -G "Unix Makefiles" ../../source && make && make install \
# install aom
&& cd /opt/magickdepend/ && rpm -ivh libaom-3.1.1-1.el7.x86_64.rpm && rpm -ivh libaom-devel-3.1.1-1.el7.x86_64.rpm \
# install libde265
&& cd /opt/magickdepend/ && tar -zxvf libde265-1.0.8.tar.gz && cd libde265-1.0.8 && ./autogen.sh && ./configure && make && make install \
&& cd /opt/magickdepend/ && tar -zxvf libheif-1.12.0.tar.gz && cd libheif-1.12.0 && ./autogen.sh && ./configure && make && make install \
&& cd /opt/magickdepend/ && tar -zxvf libwebp-v1.2.1.tar.gz && cd libwebp-1.2.1 && ./autogen.sh && ./configure && make && make install \
# install magick
&& cd /opt/magickdepend/ && tar -zxvf ImageMagick-7.1.0-4.tar.gz && cd ImageMagick-7.1.0-4 && ./configure && make && make install \
&& ldconfig /usr/local/lib \
&& rm -rf /opt/magickdepend \
&& tar -zxvf /opt/go1.15.6.linux-amd64.tar.gz -C /usr/local && rm -f /opt/go1.15.6.linux-amd64.tar.gz \
&& yum -y install net-tools \
&& yum -y install git \
&& yum clean all
安装后参看支持格式
magick -list format