我在 Ubuntu 18.04 系统上从源代码构建了 Image Magick 7.0.7。*magick identify -version
现在在终端中输入会返回
Version: ImageMagick 7.0.7-37 Q16 x86_64 2018-05-31 https://www.imagemagick.org
Copyright: © 1999-2018 ImageMagick Studio LLC
License: https://www.imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP
Delegates (built-in):
它没有安装委托,现在我需要让它处理常见的文件类型,如 .jpg、.png 和 .tif。我确实使用了./configure --enable-shared
,但尽管如此,这些格式仍然缺失。不过,我的系统上显然存在这些格式的共享库。
我最关心的格式的委托库配置条目令人困惑:
JPEG v1 --with-jpeg=yes no
OpenEXR --with-openexr=yes no
PNG --with-png=yes no
TIFF --with-tiff=yes no
第二行似乎显示它尝试安装这些格式,但最后一行似乎显示没有安装。因此我不知道如何处理这些信息。
我可以从他们有可用的委托包?
编辑:这个答案提供了部分解决方案,但仍缺少很多委托,包括我真正需要的 TIFF。答案是,从 Image Magick 维护的委托库安装需要付出很多努力,但都没有成功,这令人沮丧。如果有人对此有建议,从那里安装似乎仍然是目前最好的选择。
make check
*(运行时有 2 项测试失败,因此它执行了其测试套件,并且我已按照日志请求在他们的 GitHub 存储库上打开了一个问题。)
答案1
看起来你只是跳过一些必需的 Bionic Beaver 开发库。安装完成后,您就可以开始了!
1.“开发”文件:
生成所需开发库列表的最简单方法是确保在“软件和更新”中勾选了“源”框,然后从终端运行以下命令:
apt-get -s build-dep imagemagick
这模拟运行(-s) 将为您提供大量需要安装的文件(在干净的 Bionic Beaver 安装上下载 240mb)。我已经为您完成了这项工作,因此只需运行以下命令即可单一命令加载所需的开发文件:
sudo apt-get install autoconf automake autopoint autotools-dev build-essential chrpath \
cm-super-minimal debhelper dh-autoreconf dh-exec dh-strip-nondeterminism doxygen \
doxygen-latex dpkg-dev fonts-lmodern g++ g++-7 gcc gcc-7 gir1.2-harfbuzz-0.0 graphviz \
icu-devtools libann0 libasan4 libatomic1 libbz2-dev libc-dev-bin libc6-dev \
libcairo-script-interpreter2 libcairo2-dev libcdt5 libcgraph6 libcilkrts5 \
libclang1-6.0 libdjvulibre-dev libexif-dev libexpat1-dev libfftw3-bin libfftw3-dev \
libfftw3-long3 libfftw3-quad3 libfile-stripnondeterminism-perl libfontconfig1-dev \
libfreetype6-dev libgcc-7-dev libgdk-pixbuf2.0-dev libglib2.0-dev libglib2.0-dev-bin \
libgraphite2-dev libgts-0.7-5 libgvc6 libgvpr2 libharfbuzz-dev libharfbuzz-gobject0 \
libice-dev libicu-dev libicu-le-hb-dev libicu-le-hb0 libiculx60 libilmbase-dev \
libitm1 libjbig-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev liblab-gamut1 \
liblcms2-dev liblqr-1-0-dev liblsan0 libltdl-dev liblzma-dev libmime-charset-perl \
libmpx2 libopenexr-dev libpango1.0-dev libpathplan4 libpcre16-3 libpcre3-dev \
libpcre32-3 libpcrecpp0v5 libperl-dev libpixman-1-dev libpng-dev libpotrace0 \
libptexenc1 libpthread-stubs0-dev libpython-stdlib libquadmath0 librsvg2-bin \
librsvg2-dev libsigsegv2 libsm-dev libsombok3 libstdc++-7-dev libsynctex1 \
libtexlua52 libtexluajit2 libtiff-dev libtiff5-dev libtiffxx5 libtool libtool-bin \
libtsan0 libubsan0 libunicode-linebreak-perl libwmf-dev libx11-dev libxau-dev \
libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxdmcp-dev libxext-dev libxft-dev \
libxml2-dev libxml2-utils libxrender-dev libxt-dev libzzip-0-13 linux-libc-dev m4 \
make pkg-config pkg-kde-tools po-debconf preview-latex-style python python-minimal \
python2.7 python2.7-minimal python3-distutils python3-lib2to3 tex-common \
texlive-base texlive-binaries texlive-extra-utils texlive-font-utils \
texlive-fonts-recommended texlive-latex-base texlive-latex-extra \
texlive-latex-recommended texlive-pictures x11proto-core-dev x11proto-dev \
x11proto-xext-dev xorg-sgml-doctools xsltproc xtrans-dev zlib1g-dev
在这些开发文件之上,我们可以添加一些文件来完成 ImageMagick 的安装,添加 checkinstall 以协助打包,添加一些 -dev 文件来构建标准 Ubuntu 软件包中没有的一些委托。下面是单个命令:
sudo apt-get install checkinstall libwebp-dev libopenjp2-7-dev librsvg2-dev \
libde265-dev libheif-dev
2.下载、编译和安装:
然后运行以下命令单一命令下载最新的 ImageMagick 并成功构建它:
mkdir $HOME/imagemagick_build && cd $HOME/imagemagick_build && \
wget https://www.imagemagick.org/download/ImageMagick-7.0.7-37.tar.bz2 && \
tar xvf ImageMagick-7.0.7-37.tar.bz2 && cd ImageMagick-7.0.7-37 && \
./configure --with-rsvg && make && \
sudo checkinstall -D --install=yes --fstrans=no --pakdir "$HOME/imagemagick_build" \
--pkgname imagemagick --backup=no --deldoc=yes --deldesc=yes --delspec=yes --default \
--pkgversion "7.0.7-37" && \
make distclean && sudo ldconfig
我已经指出:./configure --with-rsvg && make
您可以通过添加以下内容来显著加快编译速度:./configure --with-rsvg && make -j 4
,添加与处理器可用核心数量相称的整数......
3.测试安装:
测试此版本可揭示您所需的代表安全安装:
andrew@ilium:~$ identify --version
Version: ImageMagick 7.0.7-37 Q16 x86_64 2018-06-01 https://www.imagemagick.org
Copyright: © 1999-2018 ImageMagick Studio LLC
License: https://www.imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype heic jbig jng
jp2 jpeg lcms lqr lzma openexr pangocairo png rsvg tiff webp wmf x xml zlib
andrew@ilium:~$
现在,您已经在 Bionic Beaver 上安装了最新的 ImageMagick,并且拥有您所需的所有代表以及一些额外的代表:)。
答案2
@andrew-46 建议的方法很好,有助于理解如何在 Ubuntu 20.04 上使用委托安装 ImageMagick
我知道答案与 18.04 有关,但也许对其他人有用。
特别是我的目标是将它安装到docker镜像中,这是我所做的:
# Install ImageMagick build dependencies
RUN apt-get update -qq &&\
apt-get install -y -qq \
chrpath debhelper dh-exec dpkg-dev g++ ghostscript gsfonts libbz2-dev \
libdjvulibre-dev libexif-dev libfftw3-dev libfontconfig1-dev libfreetype6-dev \
libjpeg-dev liblcms2-dev liblqr-1-0-dev libltdl-dev liblzma-dev libopenexr-dev \
libpango1.0-dev libperl-dev libpng-dev librsvg2-bin librsvg2-dev libtiff-dev libwebp-dev \
libwmf-dev libx11-dev libxext-dev libxml2-dev libxt-dev pkg-config pkg-kde-tools zlib1g-dev
# Install ImageMagick Platform-independent build dependencies
RUN apt-get update -qq &&\
apt-get install -y -qq \
doxygen doxygen-latex graphviz jdupes libxml2-utils xsltproc
# Install and Configure ImageMagick
RUN wget https://download.imagemagick.org/ImageMagick/download/ImageMagick-7.1.0-4.tar.gz -P /opt
RUN tar -xvzf /opt/ImageMagick-7.1.0-4.tar.gz -C /opt
RUN /opt/ImageMagick-7.1.0-4/configure --with-modules --enable-shared
RUN make -j 2 /opt/ImageMagick-7.1.0-4
RUN make install /opt/ImageMagick-7.1.0-4/
RUN make distclean
RUN ldconfig /usr/local/lib
RUN rm /opt/ImageMagick-7.1.0-4.tar.gz
我在这里找到了依赖项列表https://launchpad.net/ubuntu/focal/+source/imagemagick
答案3
我在安装 ImageMagick 时遇到了同样的问题,并使用上述 andrew.46 的非常有用的答案作为解决方案的基础。
Andrew 的解决方案对我来说暂时失败了,make
因为.heic
委托包编译不正确,导致整个过程失败。如果您遇到这种情况,有两种解决方案 -.heic
如果您不需要使用 iphone 图像,则编译时无需支持,或者安装 heic 委托包所需的包。
1 ‘开发’文件
完全按照上面 andrew.46 的回答。
2 可选 - 下载编译 .heic 委托的软件包
我用了答案这里作为我的解决方案的基础。您需要安装 libde265 和 libheif 包。
$ sudo apt-get build-dep imagemagick libde265 libheif
$ cd /usr/src/
$ sudo git clone https://github.com/strukturag/libde265.git
$ sudo git clone https://github.com/strukturag/libheif.git
$ cd libde265/
$ sudo ./autogen.sh
$ sudo ./configure
$ sudo make –j4
$ sudo make install
$ cd /usr/src/libheif/
$ sudo ./autogen.sh
$ sudo ./configure
$ sudo make –j4
$ sudo make install
3 下载、编译并安装
如果有帮助的话,您可以将 andrew 的答案中的命令分解为较小的块,以查看发生了什么。只需分别在“&&”之间运行命令的各个部分即可。(我实际上并没有意识到您可以使用 && 将终端命令连接在一起 - 这是一个我现在会更多地使用的技巧。)
以下对我有用:
$ mkdir $HOME/imagemagick_build && cd $HOME/imagemagick_build
$ wget https://www.imagemagick.org/download/ImageMagick.tar.gz
$ tar xvf ImageMagick-7*
$ ./configure --with-rsvg
$ make -j4
$ sudo checkinstall -D --install=yes --fstrans=no --pakdir "$HOME/imagemagick_build" \
--pkgname imagemagick --backup=no --deldoc=yes --deldesc=yes --delspec=yes --default \
--pkgversion "7.0.10-14"
$ make distclean && sudo ldconfig
请注意,这应该适用于最新版本的 ImageMagick(只需确保将 `--pkgversion“7.0.10-14”替换为您下载的版本)。
如果您没有遵循上述步骤 2,则必须在没有 heic 委托的情况下配置 ImageMagick。只需运行./configure --with-rsvg --with-heic=no
,您将不会有 .heic 委托,但编译将正常工作。
4 验证版本
在终端中输入identify -version
以检查安装。您应该有完整的代表名单。
$ identify -version
Version: ImageMagick 7.0.10-14 Q16 x86_64 2020-05-24 https://imagemagick.org
Copyright: © 1999-2020 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(4.5)
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype heic jbig jng jp2 jpeg lcms lqr lzma openexr pangocairo png rsvg tiff webp wmf x xml zlib