IMEI - ImageMagick Easy Install
Automated ImageMagick compilation from sources for Debian/Ubuntu including advanced delegate support.
Features
- Compiles the latest ImageMagick release
- Installs ImageMagick or updates ImageMagick package previously installed (via IMEI)
- Additional HEIF/HEIC/HEIX support
- Additional AVIF support
- Additional JPEG XL support
Compatibility
The compatibility of every IMEI build is automatically tested using GitHub Actions against the latest Ubuntu LTS version. However, manual testing is conducted to ensure compatibility with other operating systems, such as Debian 10 or Ubuntu 18.04.
Operating System
Recommended
- Ubuntu 24.04 (Noble Numbat)
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 20.04 (Focal Fossa)
- Debian 12 (Bookworm)
- Debian 11 (Bullseye)
Also compatible
- Ubuntu 18.04 (Bionic Beaver)
- Debian 10 (Buster)
Other versions than the ones listed might be compatible as well, but they are not officially supported.
Known issues
- To compile JPEG XL, CMake 3.10 or a newer version is required. On older systems like Debian 9, the version provided by maintainers is not adequate. In such cases, the compilation of JPEG XL will be skipped.
- For libaom, a minimum CMake version of 3.6 is necessary. On older systems, the version provided by maintainers might not be sufficient. In these instances, the compilation of libaom will be skipped. Consequently, libheif will also be skipped since it depends on libaom.
Usage
One-Step Automated Install
t=$(mktemp) && \
wget 'https://dist.1-2.dev/imei.sh' -qO "$t" && \
bash "$t" && \
rm "$t"
Alternative Install Method
git clone https://github.com/SoftCreatR/imei && \
cd imei && \
chmod +x imei.sh && \
./imei.sh
Verify installer integrity
Though the installer performs a self check upon startup, you can also perform it manually.
To do so, openssl
is required:
wget -q https://dist.1-2.dev/imei.sh && \
wget -q https://dist.1-2.dev/imei.sh.sig && \
wget -q https://dist.1-2.dev/imei.sh.pem && \
openssl dgst -sha512 -verify imei.sh.pem -signature imei.sh.sig imei.sh
Alternative integrity check
git clone https://github.com/SoftCreatR/imei && \
cd imei && \
openssl dgst -sha512 -verify imei.sh.pem -signature imei.sh.sig imei.sh
Options available
Currently available build options are
--skip-dependencies
/--skip-deps
: Skip installation of dependencies--imagemagick-version
/--im-version
: Build the given ImageMagick version (e.g.7.1.1-25
)--force-imagemagick
/--force-im
: Force building of ImageMagick only, even if it's are already installed in a newer or the latest version--imagemagick-quantum-depth
/--im-q
: ImageMagick Quantum Depth (8, 16 or 32)--imagemagick-opencl
/--im-ocl
: Install ImageMagick with OpenCL support--imagemagick-static
/--im-static
: Enables static libraries, disables shared libraries--aom-version
: Build the given aom version (e.g.3.8.0
)--skip-aom
: Skip building aom--libheif-version
/--heif-version
: Build the given libheif version (e.g.1.17.6
)--skip-libheif
/--skip-heif
: Skip building libheif--jpeg-xl-version
/--jxl-version
: Build the given JPEG XL version (e.g.0.9.0
)--skip-jpeg-xl
/--skip-jxl
: Skip building JPEG XL--log-file
: Log everything to the file provided--work-dir
: Download, extract & build within the directory provided--build-dir
: Build target directory for ImageMagick--config-dir
: Config target directory for ImageMagick--force
: Force building of components, even if they are already installed in a newer or the latest version
Additional options / switches:
--no-sig-verify
/--dev
: Disable signature verification on startup--use-checkinstall
/--checkinstall
: Usecheckinstall
instead ofmake
--build-only
: Used in combination with--use-checkinstall
to build packages, without installing them--no-backports
: Disable temporary installation of OS backports (they may be used anyways, depending on your server configuration)
Default options :
- ImageMagick version:
7.1.1-41 (Q16)
- libaom version: ``
- libheif version:
1.19.5
- libjxl version:
0.11.0
- Log File:
/var/log/imei-###.log
(###
will be the timestamp of the script execution) - Work Dir:
/usr/local/src/imei
- Build Dir:
/usr/local
- Config Dir:
/usr/local/etc
Older versions of ImageMagick (installed via apt / dpkg)
IMEI enforces a stringent policy that prohibits execution when ImageMagick is detected as pre-installed via the apt
or dpkg
package managers. Currently, there is no sanctioned method to bypass this limitation. To facilitate the installation of ImageMagick through IMEI, it is imperative to first remove any extant installations, e.g.:
apt remove "*imagemagick*" --purge -y && apt autoremove --purge -y
checkinstall vs. make
IMEI offers support for both checkinstall
and make
methods. While checkinstall
enables the creation of packages that can be uninstalled at a later time, such as apt remove imei-imagemagick
, the use of make
does not provide the same convenience, making it potentially more difficult to remove all components installed by IMEI. However, it's important to note that checkinstall
may not always be available and may have certain bugs that could lead to an incomplete installation of IMEI packages.
By default, IMEI utilizes the make
method, but you have the option to use checkinstall
by specifying it in the additional options or switches (refer to "Additional options / switches" for more details).
OpenCL support
IMEI provides the option to install ImageMagick with OpenCL support. However, it is important to consider that according to the information provided here, ImageMagick's performance is significantly lower when utilizing OpenCL compared to OpenMP.
When you choose to install ImageMagick with OpenCL support using IMEI, please be aware that IMEI only compiles ImageMagick with OpenCL capabilities. It does not handle the installation of necessary drivers or any other specific requirements to enable general OpenCL support on your system.
PHP Imagick extension
The ImageMagick installation facilitated through IMEI exhibits full compatibility with the Imagick extension of PHP. It is imperative to note that the compilation of Imagick must be conducted against the version of ImageMagick that is currently installed, rather than vice versa. Consequently, subsequent to the installation of ImageMagick, it is essential to undertake the reinstallation of the Imagick extension. This reinstallation can be executed either through the PECL interface or in accordance with the procedure delineated here.
Contributing
If you have any ideas, just open an issue and describe what you would like to add/change in IMEI.
If you'd like to contribute, please fork the repository and make changes as you'd like. Pull requests are warmly welcome.
License 🌳
This package is Treeware. If you use it in production, then we ask that you buy the world a tree to thank us for our work. By contributing to the ecologi project, you’ll be creating employment for local families and restoring wildlife habitats.