Published on Sep 8 2014 in Non-Java Server Mangement

Arbitrary version of ImageMagick cannot usually be installed on shared server but it can be installed in user's home directory. See copy and paste instructions.

Centos 5 comes with ImageMagick 6.2.8 and Centos 6 includes 6.5.4. If you need a newer version ImageMagick can be found in 3rd party RPMs but these RPMs are not relocatable i.e. if you install them in your home directory (using rpm2cpio and cpio) they will not run as the binaries have hardcoded system paths.

Sysadmin of a shared server may also be unwilling to install newest version from 3rd party repositories on a user request.

The key to have your own arbitrary version of ImageMagick is to install it from source in your home directory. Sometimes you may need to also install some dependencies if they are missing on host system. First ask sysadmins if they can install them system wide to have your work simplified.

By installing from sources you can specify path prefix and all the binaries will then know where to look for configuration files and other ImageMagick internal dependencies. Let's go wih Centos 5 example where user user1 installs it in his home directory:

wget http://www.imagemagick.org/download/ImageMagick.tar.gz
tar xvzf ImageMagick.tar.gz
cd ImageMagick-6.8.9-7
./configure --prefix=/home/user1/ImageMagick
make 
make install

In ~/.bashrc below first shebang line insert the 3 ImageMagick related variables and reread environment:

sed -i '2i\
export MAGICK_HOME="$HOME/ImageMagick"\
export PATH="$MAGICK_HOME/bin:$PATH"\
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$MAGICK_HOME/lib"\
' ~/.bashrc

source ~/.bashrc

Finally, check configuration and test convert command.

convert -list configure
Path: /home/user1/ImageMagick/lib/ImageMagick-6.8.9//config-Q16/configure.xml

Name Value
-------------------------------------------------------------------------------
CC gcc -std=gnu99 -std=gnu99
CFLAGS -I/usr/include/freetype2 -fopenmp -g -O2 -Wall -march=core2 -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16
CODER_PATH /home/user1/ImageMagick/lib/ImageMagick-6.8.9/modules-Q16/coders
CONFIGURE ./configure '--prefix=/home/user1/ImageMagick'
CONFIGURE_PATH /home/user1/ImageMagick/etc/ImageMagick-6/
COPYRIGHT Copyright (C) 1999-2014 ImageMagick Studio LLC
CPPFLAGS -I/home/user1/ImageMagick/include/ImageMagick-6
CXX g++
CXXFLAGS -g -O2 -pthread
DEFS -DHAVE_CONFIG_H
DELEGATES bzlib mpeg fontconfig freetype jng jpeg lcms png ps tiff x xml zlib
DISTCHECK_CONFIG_FLAGS --disable-deprecated --with-quantum-depth=16 --with-umem=no --with-autotrace=no --with-gslib=no --with-fontpath= --with-gvc=no --with-rsvg=no --with-wmf=no --with-perl=no
DOCUMENTATION_PATH /home/user1/ImageMagick/share/doc/ImageMagick-6
EXEC-PREFIX /home/user1/ImageMagick
EXECUTABLE_PATH /home/user1/ImageMagick/bin
FEATURES DPC OpenMP
FILTER_PATH /home/user1/ImageMagick/lib/ImageMagick-6.8.9/modules-Q16/filters
HOST x86_64-unknown-linux-gnu
INCLUDE_PATH /home/user1/ImageMagick/include/ImageMagick-6
LDFLAGS -L/home/user1/ImageMagick/lib 
LIB_VERSION 0x689
LIB_VERSION_NUMBER 6,8,9,7
LIBRARY_PATH /home/user1/ImageMagick/lib/ImageMagick-6.8.9
LIBS -llcms -ltiff -lfreetype -ljpeg -lpng12 -lfontconfig -lXext -lXt -lSM -lICE -lX11 -lbz2 -lxml2 -lz -lm -lgomp
NAME ImageMagick
PCFLAGS -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16
PREFIX /home/user1/ImageMagick
QuantumDepth 16
RELEASE_DATE 2014-09-05
SHARE_PATH /home/user1/ImageMagick/share/ImageMagick-6
SHAREARCH_PATH /home/user1/ImageMagick/lib/ImageMagick-6.8.9/config-Q16
SVN_REVISION 16331
TARGET_CPU x86_64
TARGET_OS linux-gnu
TARGET_VENDOR unknown
VERSION 6.8.9
WEBSITE http://www.imagemagick.org

Path: [built-in]

Name Value
-------------------------------------------------------------------------------
FEATURES OpenMP 
NAME ImageMagick
QuantumDepth 16