Ubuntu – How to install delegate libraries for Image Magick 7.0.7

18.04compilingimagemagicksoftware installation

I built Image Magick 7.0.7 from source on my Ubuntu 18.04 system.* Typing magick identify -version into the terminal now returns

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): 

It has no delegates installed, and now I need to get it to work with common file types like .jpg, .png, and .tif. I did use ./configure --enable-shared, but nonetheless, those formats are missing. However, clearly there exist shared libraries on my system for those.

The Delegate Library Configuration entries for the formats I'm most concerned about is confusing:

  JPEG v1           --with-jpeg=yes     no
  OpenEXR           --with-openexr=yes      no
  PNG               --with-png=yes      no
  TIFF              --with-tiff=yes     no

The 2nd row seems to show it tried to install those formats, but the last row seems to show no installation occurred. I thus don't know what to do with this information.

Can I install the missing delegates from the delegate packages they have available?

Edit: This answer provides a partial solution, but still a lot of delegates are missing, including the one I really need, TIFF. The question the answer is for shows a lot of effort to install from the delegate library maintained by Image Magick with no success, which is discouraging. Installing from there still seems like the best option at this point, if someone has advice on that.


*(It fails 2 tests when make check is run so it executes its test suite, and I've opened an issue on their GitHub repo as the log requests.)

Best Answer

It looks like you have simply skipped some of the required Bionic Beaver development libraries. Once these are installed you should be good to go!

1. 'Development' Files:

Easiest way to generate the required list of development libraries is to make sure you have the 'Sources' box ticked in 'Software & Updates' and then run the following command from a Terminal:

apt-get -s build-dep imagemagick

This simulated run (-s) will give you an eye-watering number of files to install (240mb download on a clean Bionic Beaver install). I have done this already for you so simply run the following single command to load up the required development files:

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

On top of these development files we can add a few more to round out the ImageMagick installation, checkinstall to assist in packaging and a few more -dev files to build some delegates not seen in the standard Ubuntu package. The following is again a single command:

sudo apt-get install checkinstall libwebp-dev libopenjp2-7-dev librsvg2-dev \
libde265-dev libheif-dev

2. Download , compile & install:

Then run the following single command to download the latest ImageMagick and successfully build it:

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

Where I have indicated: ./configure --with-rsvg && make you can substantially speed up the compile by adding something like the following: ./configure --with-rsvg && make -j 4, adding in an integer commensurate with the number of cores available from your processor...

3. Test the installation:

Testing this version reveals your required delegates safely installed:

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:~$

And now you have the very latest ImageMagick installed on Bionic Beaver with all of the delegates that you required and a few extra ones for good measure:).