Code Monkey home page Code Monkey logo

imei's Introduction

IMEI - ImageMagick Easy Install

Automated ImageMagick compilation from sources for Debian/Ubuntu including advanced delegate support.

Build

Commits GitHub release GitHub license Plant Tree Installs GitHub file size in bytes

Codacy grade CodeFactor Grade



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 : Use checkinstall instead of make
  • --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-31 (Q16)
  • libaom version: 3.9.0
  • libheif version: 1.17.6
  • libjxl version: 0.10.2
  • 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 🌳

ISC © 1-2.dev

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.

imei's People

Contributors

github-actions[bot] avatar j3j5 avatar jnweiger avatar jzern avatar piscisaureus avatar softcreatr avatar tituskirch avatar xathon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

imei's Issues

Installing dependencies list based on cli choices

When installing dependencies, and the cli has opted out of building aom and/or jpeg-xl, those dependencies especially installed for them should be skipped.

I.e., the dependent list should be build up step by step, as per what delegates will need to be built-in.

libheif [FAILURE]] on update?

Im trying to update imagemagick to last version but get this error

Version: ImageMagick 7.0.11-14 Q32 x86_64 2021-05-17 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(4.5)
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype gslib gvc heic jbig jng jp2 jpeg jxl lcms lqr ltdl lzma openexr pangocairo png ps raw rsvg tiff webp wmf x xml zip zlib
root@mail:~# bash <(curl -sL dist.1-2.dev/imei) --no-sig-verify --imagemagick-version 7.1.0-2 --force
###########################################
Welcome to IMEI - ImageMagick Easy Install
###########################################

Detected OS : Ubuntu 18.04.5 LTS
Detected Arch : x86_64
Detected Cores : 12

Used web client : curl

Work Dir : /usr/local/src/imei
Build Dir : /usr/local
Log File : /var/log/imei.log

Force Build : yes
CI Build : no
Signature Check : disabled

#####################
Installation Process
#####################

Installing dependencies [OK]
Building aom [OK]
Building libheif [FAILURE]

Please check /var/log/imei.log for details.

....
heif-test.go:39:2: no required module provides package github.com/strukturag/libheif/go/heif: go.mod file not found in current directory or any parent directory; see 'go help modules'
Makefile:1161: recipe for target 'heif-test-go' failed
make[2]: *** [heif-test-go] Error 1
make[2]: *** Waiting for unfinished jobs....
mv -f .deps/heif_convert-encoder.Tpo .deps/heif_convert-encoder.Po
mv -f .deps/heif_convert-encoder_y4m.Tpo .deps/heif_convert-encoder_y4m.Po
mv -f .deps/heif_thumbnailer-encoder.Tpo .deps/heif_thumbnailer-encoder.Po
mv -f .deps/heif_convert-encoder_png.Tpo .deps/heif_convert-encoder_png.Po
mv -f .deps/heif_thumbnailer-encoder_png.Tpo .deps/heif_thumbnailer-encoder_png.Po
mv -f .deps/heif_convert-encoder_jpeg.Tpo .deps/heif_convert-encoder_jpeg.Po
mv -f .deps/heif_thumbnailer-heif_thumbnailer.Tpo .deps/heif_thumbnailer-heif_thumbnailer.Po
mv -f .deps/heif_info-heif_info.Tpo .deps/heif_info-heif_info.Po
mv -f .deps/heif_convert-heif_convert.Tpo .deps/heif_convert-heif_convert.Po
mv -f .deps/heif_test-heif_test.Tpo .deps/heif_test-heif_test.Po
mv -f .deps/heif_enc-heif_enc.Tpo .deps/heif_enc-heif_enc.Po
make[2]: Leaving directory '/usr/local/src/imei/libheif-1.12.0/examples'
Makefile:536: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/usr/local/src/imei/libheif-1.12.0'
Makefile:445: recipe for target 'all' failed
make: *** [all] Error 2

convert: unable to load module jpeg.la

I'm getting the "convert: unable to load module jpeg.la" error whenever I operate on a jpeg files, like:

$ convert p.jpg p.png
convert: unable to load module '/usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/jpeg.la': file not found @ error/module.c/OpenModule/1291.
convert: no decode delegate for this image format `JPEG' @ error/constitute.c/ReadImage/746.
convert: no images defined `p.png' @ error/convert.c/ConvertImageCommand/3354.

What kind of files I'm missing? That file is right there in my system:

$ ls -l /usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/jpeg.*
-rwxr-xr-x 1 root root  1190 2023-09-01 12:11 /usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/jpeg.la
-rwxr-xr-x 1 root root 80904 2023-09-01 12:11 /usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/jpeg.so

$ file /usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/png.la
/usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/png.la: libtool library file, ASCII text

$ file /usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/png.so
/usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/png.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=30ae74740a3e720df3c003bb558f30082764383e, stripped

$ diff -wU 1 /usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/png.la /usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/jpeg.la
--- /usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/png.la	2023-09-01 12:11:25.000000000 -0400
+++ /usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/jpeg.la	2023-09-01 12:11:25.000000000 -0400
@@ -1,2 +1,2 @@
-# png.la - a libtool library file
+# jpeg.la - a libtool library file
 # Generated by libtool (GNU libtool) 2.4.7
@@ -7,6 +7,6 @@
 # The name that we can dlopen(3).
-dlname='png.so'
+dlname='jpeg.so'
 
 # Names of this library.
-library_names='png.so png.so png.so'
+library_names='jpeg.so jpeg.so jpeg.so'
 
@@ -19,3 +19,3 @@
 # Libraries that this one depends upon.
-dependency_libs=' /usr/local/lib/libMagickCore-7.Q16HDRI.la -L/usr//usr/lib/x86_64-linux-gnu -llcms2 -lraqm -llqr-1 -lglib-2.0 -lfftw3 -lxml2 -lfontconfig -lfreetype -lXext -lSM -lICE -lX11 -lbz2 -lzip /usr/lib/x86_64-linux-gnu/libltdl.la -ldl -lpthread -lpng16 -ljpeg -llzma -lz -lm'
+dependency_libs=' /usr/local/lib/libMagickCore-7.Q16HDRI.la -L/usr//usr/lib/x86_64-linux-gnu -llcms2 -lraqm -llqr-1 -lglib-2.0 -lfftw3 -lxml2 -lfontconfig -lfreetype -lXext -lSM -lICE -lX11 -lbz2 -lz -lzip /usr/lib/x86_64-linux-gnu/libltdl.la -ldl -lpthread -ljpeg -lm'
 
@@ -24,3 +24,3 @@
 
-# Version information for png.
+# Version information for jpeg.
 current=0

build-dir does not work

📚 Documentation

documentation says build-dir is where things would get built, setting it to /work makes it appear to use it, but all the files are still going to /usr/local in the end.

Have you spent some time to check if this issue has been raised before?

(Have you googled for a similar issue or checked our older issues for a similar bug)

Have you read the Code of Conduct?

[x] I have read the Code of Conduct

Log4j issue

Image magick installation brings in log4j 2.13 version. Is there a way to update this library

Verify installer integrity fails

@SoftCreatR just wanted to do a integrity check and followed your instructions.

The check fails, because both of the files (signature and public key) return a 404.

Can you pls check and fix?

Many thanks

php support

Please consider adding php package support as well

JXL installed but delegate not found

I am running this in a docker container with Debian GNU/Linux 9.13 x86_64 (stretch):

RUN git clone https://github.com/Kitware/CMake && \
    cd CMake && \
    ./bootstrap && \
    make && \
    make install

RUN git clone https://github.com/SoftCreatR/imei && \
    cd imei && \
    chmod +x imei.sh && \
    ./imei.sh

Reading the docker log, the install script outputs that jxl was installed "[OK]", but running identify --version afterwards shows the delegate is not included.

Version: ImageMagick 7.1.0-9 Q16-HDRI x86_64 2021-09-26 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(4.5) 
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype gslib gvc heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png ps raw rsvg tiff webp wmf x xml zip zlib
Compiler: gcc (6.3)

Attempting a grep on the output log of imei doesn't seem to report an entry for "jxl"

Minimum dependant packages if possible

Originally posted by @suntong in #87

If I use the checkinstall methods to enable the creation of packages that can be uninstalled at a later time, and copy the built packages to another machine and do installation there, it seems to me that it is requesting more packages than necessary, like autoconf automake autotools-dev yasm cmake pkg-config etc...

Hope we can seperate the runtime dependant packages from build-time some day.

delegate failed `'dwebp'

Symptom:

$ identify /tmp/test.webp 
identify: delegate failed `'dwebp' -pam '%i' -o '%o'' @ error/delegate.c/InvokeDelegate/1924.
identify: unable to load module '/usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/webp.la': file not found @ error/module.c/OpenModule/1291.
identify: unable to open file '/tmp/magick-KaC5RluS7eQOHIwYj93unSHJd5AmyKSJ': No such file or directory @ error/constitute.c/ReadImage/785.

But I've already have all these packages installed:

ii libwebp-dev:amd64  amd64 Lossy compression of digital photographic images
ii libwebp7:amd64  amd64 Lossy compression of digital photographic images
ii libwebpdemux2:amd64  amd64 Lossy compression of digital photographic images.
ii libwebpmux3:amd64  amd64 Lossy compression of digital photographic images

Symptom the same on both Debian GNU/Linux 12 (bookworm) and Ubuntu 22.04.2 LTS.

[FR] Update README.md

@SoftCreatR thanks for doing all the work. This is no code change but an update request for readme based on the latest changes made.

  • Currently available build options are -->
    Currently available build options are the following, have in case a blank between an option and its value (_do not_ use an "=" sign).
    (this is because you do not use getopt_long)
  • Mention that named components are installed via checkinstall and can be uninstalled using apt/dpkg because of #33 (comment)

default aom version doesn't exist

🐛 Bug Report

When using the default configuration the imei.sh script fails because the aom tar file doesn't exist. The version returned by https://raw.githubusercontent.com/SoftCreatR/imei/main/versions/aom.version (2.1.01) isn't an available version at https://github.com/jbeich/aom/releases. Providing for the argument --aom-version 2.1.0-rc1 worked great.

Have you spent some time to check if this issue has been raised before?

Yes

To Reproduce

Use the recommended command ./imei.sh

Expected behavior

Successful installation

Actual Behavior

Failed on the "Building aom step"

Your Environment

Using the latest git repo code, ubuntu 20.04

doxigen and opencl dependencies?

Great tool to have a nice clean full install of ImageMagick . During the install there where 2 errors that maybe stopped me from having a successful install.

  1. (indicated in the log) regarding doxigen that was seamingly solved with (an apology i didn't write down the error)

sudo apt install doxygen

  1. it was looking for :

./MagickWand/studio.h:133:12: fatal error: CL/cl.h: No such file or directory
and it finally went away after doing the following

sudo apt install opencl-headers

now I got the happy message:
image
the leftover errors seem to be of no impact to the software usage.
image
eddit: now I see those are not "errors"... lol

No biggy, it might be a faulty messy set up of mine, just letting you guys know.

sidenote: I came back looking for an updated version of your script from 2019 to install ImageMagick!

How to install Specific version of ImageMagick?

hi,
i have already install ImageMagick 7.1
when i run bellow code it will install 7.1. but i want to install ImageMagick 6.9.10. so how can i install ImageMagick 6.9.10?
t=$(mktemp) && \ wget 'https://dist.1-2.dev/imei.sh' -qO "$t" && \ bash "$t" && \ rm "$t"

thank you

Tab completion for IM 7 using bash shell?

Hi there, I installed IM 7.1.0-62 a few weeks ago on my Linux Mint 20.3 machine. The installation worked even though the distro isn't officially supported. IM is working as expected I think.
The only issue I have is with the lack of tab completion. I'm not even sure that there even exist a bash script available for IM7, I saw this thread ImageMagick/ImageMagick#5548. Any ideas?

[FR] add some options

@SoftCreatR
seen during my tests, I missed some options when calling the script:

  • --remove to completely remove the installation
    ImageMagick and dependencies (like aom ect)
  • --force-imagick, an option which checks if the dependencies are up to date and (re)builds them if needed, but mandatory forces to rebuild imagick. This is very handy if you eg just change a config option which needs an imagick rebuild while the already build dependencies are up to date. This would shorten build times with changed parametrisation a lot.

Renaming public.pem to imei.public.pem making it clear whom it belongs to...

imei isn't aware of conflicts during dependency installation and incorrectly displays that dependency installation is complete

🚀 Feature

imei should fail out when there is an apt install failure with a dump of the previous command stdout

Another option is to search for the installed packages from the output of apt list --installed

Have you spent some time to check if this issue has been raised before?

Yes

Have you read the Code of Conduct?

[x] I have read the Code of Conduct

Pitch

imei isn't aware of conflicts during dependency installation and incorrectly displays that dependency installation is complete

The result compile ends up not supporting many image types.

It would be useful to have imei either warn you or prompt you with "Looks like some dependencies are still missing. Would you like to continue with compile?"

Screenshots

image

What actually happens under the hood.

image

Illegal instruction in Docker

          Is the imei6.10 working for you?
$ identify --version
Version: ImageMagick 7.1.1-15 Q16-HDRI x86_64 98eceff6a:20230729 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(4.5) 
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype gslib gvc jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png ps raqm raw rsvg tiff webp wmf x xml zip zlib
Compiler: gcc (11.4)

$ identify /usr/share/yelp/icons/hicolor/16x16/status/yelp-page-ui.png
Illegal instruction (core dumped)
  • I've build (with docker) twice, and twice I'm getting the above.
  • I then revert to v7.1.1-15-imei6.9.0 and it works fine,
  • I then reinstall v7.1.1-15-imei6.10.1 and it core dumped again.

Tested under Ubuntu 22.04.2 LTS.

If you want, I can post the links to my built packages so that you can take a look / try at your side as well.

Originally posted by @suntong in #92 (comment)

Provide a "static" build option

🚀 Feature

As noted in #22 (comment) building extra libraries to a different directory may be difficult. Can we perhaps have an option to build binaries that embed the library inside so it can run on its own at the expense of having a larger image size.

My use case is to simply run Image Magick 7.x with HEIC support with OPENJDK's Dockerimage.

Have you spent some time to check if this issue has been raised before?

This is what I do, but it creates large image layer and it is slow on builds.

FROM openjdk:11-jdk
RUN apt-get update && \
  apt-get install -y ffmpeg && \
  curl -sL -o /tmp/imei dist.1-2.dev/imei && \
  bash /tmp/imei --no-sig-verify && \
  rm -rf /var/lib/apt/lists/*

What I wanted was

FROM ubuntu as imagemagick
RUN apt-get update -qq -y && \
  DEBIAN_FRONTEND=noninteractive apt-get install -y git curl make cmake automake libtool yasm g++ pkg-config perl libde265-dev libx265-dev libltdl-dev libopenjp2-7-dev liblcms2-dev libbrotli-dev libzip-dev libbz2-dev liblqr-1-0-dev libzstd-dev libgif-dev libjpeg-dev libopenexr-dev libpng-dev libwebp-dev librsvg2-dev libwmf-dev libxml2-dev libtiff-dev libraw-dev ghostscript gsfonts ffmpeg libpango1.0-dev libdjvulibre-dev libfftw3-dev libgs-dev libgraphviz-dev libjemalloc-dev
RUN curl -sL -o  /imei.sh dist.1-2.dev/imei && \
  mkdir /work && \
  bash -x /imei.sh --no-sig-verify --build-dir /work && \
  rm -rf /var/lib/apt/lists/*

FROM openjdk:11-jre as imagemagick2
COPY --from=imagemagick /work /usr/local

Have you read the Code of Conduct?

[x] I have read the Code of Conduct

Pitch

(Please explain why this feature should be implemented and how it would be used. Add examples, if applicable.)

Note I just saw the update for work-dir so I am testing it out right now.

Failed to verify installation

################################################
 Welcome to IMEI - ImageMagick Easy Install 6.6.4
 ################################################

 Detected OS     : Linux Mint 21.1
 Detected Arch   : x86_64
 Detected Cores  : 4

 Used web client : curl

 Work Dir        : /usr/local/src/imei
 Build Dir       : /usr/local
 Config Dir      : /usr/local/etc
 Log File        : /var/log/imei.log

 Force Build All : no
 Force Build IM  : no
 Checkinstall    : no
 CI Build        : no
 Signature Check : yes

 #####################
 Installation Process
 #####################

 Installing dependencies       [OK]
 Building aom                  [SKIPPED]
 Building libheif              [SKIPPED]
 Building jpegxl               [SKIPPED]
 Building ImageMagick (Q16)    [SKIPPED]
 Verifying installation        [FAILURE]
 Please check /var/log/imei.log for details.

root@kamykasii-desktop:/home/kamykasii# cat /var/log/imei.log
Verified OK
E: Unable to find a source package for imagemagick
Reading package lists...
Building dependency tree...
Reading state information...
automake is already the newest version (1:1.16.5-1.3).
g++ is already the newest version (4:11.2.0-1ubuntu1).
libbrotli-dev is already the newest version (1.0.9-2build6).
libbz2-dev is already the newest version (1.0.8-5build1).
libdjvulibre-dev is already the newest version (3.5.28-2build2).
libfftw3-dev is already the newest version (3.3.8-2ubuntu8).
libgif-dev is already the newest version (5.1.9-2build2).
libjpeg-dev is already the newest version (8c-2ubuntu10).
liblcms2-dev is already the newest version (2.12~rc1-2build2).
libltdl-dev is already the newest version (2.4.6-15build2).
libopenjp2-7-dev is already the newest version (2.4.0-6).
libpng-dev is already the newest version (1.6.37-3build5).
libraqm-dev is already the newest version (0.7.0-4ubuntu1).
libraqm0 is already the newest version (0.7.0-4ubuntu1).
libraw-dev is already the newest version (0.20.2-2ubuntu2).
librsvg2-dev is already the newest version (2.52.5+dfsg-3).
libtool is already the newest version (2.4.6-15build2).
libwebp-dev is already the newest version (1.2.2-2).
libwmf-dev is already the newest version (0.2.12-5ubuntu1).
libzstd-dev is already the newest version (1.4.8+dfsg-3build1).
make is already the newest version (4.3-4.1build1).
pkg-config is already the newest version (0.29.2-1ubuntu3).
gsfonts is already the newest version (1:8.11+urwcyr1.0.7~pre44-4.5).
libde265-dev is already the newest version (1.0.8-1).
libgraphviz-dev is already the newest version (2.42.2-6).
liblqr-1-0-dev is already the newest version (0.4.2-2.1).
libopenexr-dev is already the newest version (2.5.7-1).
libx265-dev is already the newest version (3.5-2).
libzip-dev is already the newest version (1.7.3-1ubuntu2).
yasm is already the newest version (1.3.0-2.1).
cmake is already the newest version (3.22.1-1ubuntu1.22.04.1).
curl is already the newest version (7.81.0-1ubuntu1.8).
ghostscript is already the newest version (9.55.0~dfsg1-0ubuntu5.1).
git is already the newest version (1:2.34.1-1ubuntu1.8).
libgs-dev is already the newest version (9.55.0~dfsg1-0ubuntu5.1).
libpango1.0-dev is already the newest version (1.50.6+ds-2ubuntu1).
libtiff-dev is already the newest version (4.3.0-6ubuntu0.4).
libxml2-dev is already the newest version (2.9.13+dfsg-1ubuntu0.2).
perl is already the newest version (5.34.0-3ubuntu1.1).
ffmpeg is already the newest version (7:4.4.2-0ubuntu0.22.04.1).
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

Missing Sources

🐛 Bug Report

Installation via IMEI results in a logged error.
And no delegates (jpg etc.) get installed.

Yet, the installation goes through without aborting or displaying the error:

E: You must put some ‘source’ URIs in your sources.list

Have you spent some time to check if this issue has been raised before?

Solution is to add sources manually in:

/etc/apt/sources.list

deb-src http://deb.debian.org/debian buster main
deb-src http://deb.debian.org/debian buster-updates main
deb-src http://security.debian.org/debian-security/ buster/updates main
deb-src http://ftp.debian.org/debian buster-backports main

Expected behavior

No error logged and and installation of all delegates (jpg etc.)

Actual Behavior

Error logged but installation not aborted.
Missing delegates (jpg etc.)

Your Environment

WIN10: Installed Debian WSL from Windows store.

jq: error again

Last time I tried with --dev option, it worked, not working today

[ 5/11] RUN cd imei && chmod +x imei.sh && ./imei.sh --dev:
#0 0.594 Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
#0 0.775 Get:2 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
#0 0.802 Get:3 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
#0 2.207 Get:4 http://deb.debian.org/debian bullseye/main amd64 Packages [8183 kB]
#0 5.650 Get:5 http://deb.debian.org/debian-security bullseye-security/main amd64 Packages [222 kB]
#0 5.707 Get:6 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [14.6 kB]
#0 10.70 Fetched 8628 kB in 10s (841 kB/s)
#0 10.70 Reading package lists...
#0 19.75 jq: error (at :1): Cannot index object with number
#0 19.92 jq: error (at :1): Cannot index object with number

Option to adjust the CFLAGS

Hi,

it would be very useful to have an command line option to adjust the CFLAGS.

Currently, in the imei.sh the setting is the following:

CFLAGS="-O3 -march=native"
CXXFLAGS="-O3 -march=native" \

If this is used in a container environment, there are problems using this container on other hardware. (Illegal instruction).

It would be great to have an option to fall back to -O0 or an expert option could allow setting the cflags to a desired value.

Jq error

I am getting below error when installing on docker machine.

[ 5/11] RUN cd imei && chmod +x imei.sh && ./imei.sh:
#8 0.524 Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
#8 1.644 Get:2 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
#8 1.784 Get:3 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
#8 2.491 Get:4 http://deb.debian.org/debian bullseye/main arm64 Packages [8072 kB]
#8 5.714 Get:5 http://deb.debian.org/debian-security bullseye-security/main arm64 Packages [209 kB]
#8 5.835 Get:6 http://deb.debian.org/debian bullseye-updates/main arm64 Packages [12.0 kB]
#8 6.423 Fetched 8501 kB in 6s (1370 kB/s)
#8 6.423 Reading package lists...
#8 8.209 jq: error (at :1): Cannot index object with number
#8 8.236 jq: error (at :1): Cannot index object with number

Error: unmet dependencies

I'm building the IM package with bash "$t" --use-checkinstall --skip-aom --skip-jpeg-xl, and I'm getting:

The following packages have unmet dependencies:
  imei-imagemagick : Depends: imei-libaom but it is not installable
                     Depends: imei-libheif but it is not installable
                     Depends: imei-libjxl but it is not installable

Please change them from Depends to Recommends.

Thanks

Error php: symbol lookup error

php -r 'phpinfo();' | grep HEIC
php: symbol lookup error: /usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/heic.so: undefined symbol: heif_init

Signature verification failed

I have been using this script without issues, but is seems to be having an issue suddenly with signatures. Running this inside a docker container using node:16-buster as base image.

root@ae7ab7a6f92a:/imei# ./imei.sh
 Signature verification failed!

 Please check /var/log/imei.log for details.
root@ae7ab7a6f92a:/imei# cat /var/log/imei.log
./imei.sh: line 283: : No such file or directory
./imei.sh: line 286: : No such file or directory
Can't open  for reading, No such file or directory
139795456062592:error:02001002:system library:fopen:No such file or directory:../crypto/bio/bss_file.c:69:fopen('','r')
139795456062592:error:2006D080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:76:
unable to load key file

Libraqm Errors on Xenial Install

I attempted to install the script on xenial and ran into some issues with libraqm-dev and libraqm0 not being available and the script fails. Is there a workaround for this or is IM on Xenial a no-go at this point?

################################################
Welcome to IMEI - ImageMagick Easy Install 6.0.2
################################################

Detected OS     : Ubuntu 16.04.7 LTS
Detected Arch   : x86_64
Detected Cores  : 16

Used web client : curl

Work Dir        : /usr/local/src/imei
Build Dir       : /usr/local
Log File        : /var/log/imei.log

Force Build     : no
CI Build        : no
Signature Check : yes

#####################
Installation Process
#####################

Installing dependencies       [FAILURE]

Please check /var/log/imei.log for details.

I checked the logs and had this:

cat /var/log/imei.log
Verified OK
W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (main/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (restricted/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (restricted/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (restricted/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (main/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (restricted/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (restricted/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (restricted/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
Reading package lists...
Building dependency tree...
Reading state information...
W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (main/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (main/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (restricted/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (restricted/binary-i386/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
W: Target Packages (restricted/binary-all/Packages) is configured multiple times in /etc/apt/sources.list:3 and /etc/apt/sources.list.d/imei.list:1
E: Unable to locate package libraqm-dev
E: Unable to locate package libraqm0

Not HEIC support

The script completely works, but after installing it, there is still no support for HEIC.

Detected OS : Ubuntu 20.04.6 LTS
Detected Arch : aarch64
Detected Cores : 8

Version: ImageMagick 7.1.1-10 Q16-HDRI aarch64 3b5d98645:20230520 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(4.5)
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg jxl lcms lqr ltdl lzma openexr pangocairo png rsvg tiff webp wmf x xml zlib
Compiler: gcc (9.4)

[FR] set the CONFIGURE_PATH when building

@SoftCreatR is it possible to define the CONFIGURE_PATH in the build process as parameter?

convert -list configure | grep "ImageMagick-6"

Default with the U18.04/20.04, this is /etc/ImageMagick-6/
But when running a build with your script, you get /usr/local/etc/ImageMagick-7/

It would be great if this could be defined

Wanted to say thanks

This is not the proper channel but: Thank you. You saved me a couple hours of my life's time. I don't know what I would've done without imei. So thanks!

i think you forgot CURL denpedencie ;)

Sorry my logs disappears but you forget for

Building jpegxl
to check if curl is installed or not ;)

I see on script you displays "Used web client : curl" so i think you forced curl somewhere on "Building jpegxl" step.

Invalid SSL certificate for downloading imei.sh

Connecting to https://dist.1-2.dev/imei.sh provides an invalid SSL certificate, which can only be used for domains *.softcreatr.com, *.softcreatr.de, *.softcreatr.dev, softcreatr.com, softcreatr.de, softcreatr.dev. .dev TLDs have an HSLS security policy which means I can't override the SSL issue. I will use the imei.sh file from this GitHub repository, however be sure to fix this issue.

Certificate SHA-256 fingerprint:
A9:00:44:FA:0A:FB:59:D7:2A:D5:40:54:F1:7C:F2:9F:9F:44:44:5C:D3:F3:30:10:EB:61:BA:BB:0F:8D:34:51

UnableToWriteImageData error/jxl.c/WriteJXLImage/641

Writing JXL files seems to be broken in the current version.

With the following Dockerfile:

FROM php:7.4-cli
RUN apt-get update \
 && apt-get install -y wget libmagickwand-dev --no-install-recommends \
 && curl https://raw.githubusercontent.com/SoftCreatR/imei/main/imei.sh | bash

Converting an image to JXL inside the docker image:

convert test.png test.jxl

Results in the following error:

convert: UnableToWriteImageData `jxl-test.jxl' @ error/jxl.c/WriteJXLImage/641.

libheif 1.16.1 update has broken heic support

The github actions bot updated the version of libheif yesterday to 1.16.1 in this commit. This has broken heic support, because version 1.16.1 of libheif now uses "CMake instead of autotools", as per the libheif docs.

If you run imei.sh, it'll say libheif installed correctly, but if you check /var/log/imei.log you'll see it failed with an error that "autogen.sh" cannot be found.

Replacing this bit of code here:

tar -xf "libheif-$LIBHEIF_VER.tar.gz" &&
  cd "libheif-$LIBHEIF_VER" &&
  ./autogen.sh &&
  ./configure &&
  make

with

tar -xf "libheif-$LIBHEIF_VER.tar.gz" &&
  cd "libheif-$LIBHEIF_VER" &&
  mkdir build &&
  cd build &&
  cmake --preset=release ..
  make

Seems to fix it. However, the log does show some warnings, such as:

  WARNING: MISSING PACKAGE

  We could not find development headers for DAV1D.  Do you have the necessary
  dev package installed? This package is NOT REQUIRED and you may ignore this
  warning but by doing so you may miss some functionality of libheif.

  Relevant CMake configuration variables:

    DAV1D_INCLUDE_DIR=<not found>
    DAV1D_LIBRARY=<not found>

I'm not familiar with libheif itself & haven't done any further testing - just sharing my findings so far.

Note: The fix above is not safe to merge as is because it will break cases where people supply a custom version of libheif using --libheif-version. If libheif <= 1.15.2, it should use the old build command. Anything higher should use CMake.

how to set imagemagick-version Q16

First: thumbs up for this great project!!
When downloading imagemagick binaries, the user has the choice of Q8, Q16 and Q32 versions.
I set --imagemagick-version 7.0.8-25 Q16 to the call (so: bash <(wget -qO - https://dist.1-2.dev/imei.sh) --no-sig-verify --im-version 7.0.8-25 Q16 )

but I got Building ImageMagick (Q8)

other attributes
Detected OS : Ubuntu 20.04.2 LTS
Detected Arch : x86_64
Detected Cores : 7

how can I set to use the Q16 version?

Doesn't compile on Rasbian 10

AOM doesn't compile on Rasbian 10 Buster on a Raspberry Pi 4. I fixed by adding -DCMAKE_C_FLAGS="-mfloat-abi=hard -march=armv7-a -marm -mfpu=neon" to the build flags

Building ImageMagick was skipped

Thanks for this wonderful build tool first of all, but I haven't been able to get what I wanted.

There are a few problems, or rooms of improvements, based on my installation experience, all around the fact that my installation failed the first time.

  • First of all, the clearing of the terminal scroll back log and clearing the /var/log/imei.log file makes it very difficult for people to report problem, and I have to do it out of my memory and cannot give the exact output, as my installation failed the first time, and everything about the failure is wiped by imei without leaving any traces.
  • My first installation took over 15 hours (on a cheapest VPS), but it failed in the very end, due to conflict of imagemagick package that I have installed into the system (that I've forgot that I had already done so).
  • I use --use-checkinstall for imei to package and install system packages, but I was not able to find the imagemagick package in my system. Details at the end of the report.
  • I tried to use --force-imagemagick to force building of ImageMagick only on the third attempt, but I was not able to find the imagemagick package in my system still.
  • So now I believe that the only option that I have is to use the --force option to force building of components, even if they are already installed, which would take me another 15 hours.
  • All these can be easily prevented if the conflict checking is done very first, not very last.

Details:

  • For the 1st and 2nd round, my installation command is: sudo bash "$t" --use-checkinstall
  • For the 3rd round, my installation command is: sudo bash "$t" --use-checkinstall --force-imagemagick
  • The 1st round log was lost, and the 2nd & 3rd round logs are:
$ cat /var/log/imei.log
Verified OK
Reading package lists...
Building dependency tree...
Reading state information...
automake is already the newest version (1:1.16.5-1.3).
g++ is already the newest version (4:11.2.0-1ubuntu1).
libbrotli-dev is already the newest version (1.0.9-2build6).
libbz2-dev is already the newest version (1.0.8-5build1).
libdjvulibre-dev is already the newest version (3.5.28-2build2).
libfftw3-dev is already the newest version (3.3.8-2ubuntu8).
libgif-dev is already the newest version (5.1.9-2build2).
libjpeg-dev is already the newest version (8c-2ubuntu10).
liblcms2-dev is already the newest version (2.12~rc1-2build2).
libltdl-dev is already the newest version (2.4.6-15build2).
libopenjp2-7-dev is already the newest version (2.4.0-6).
libpng-dev is already the newest version (1.6.37-3build5).
libraqm-dev is already the newest version (0.7.0-4ubuntu1).
libraqm0 is already the newest version (0.7.0-4ubuntu1).
libtool is already the newest version (2.4.6-15build2).
libwmf-dev is already the newest version (0.2.12-5ubuntu1).
libzstd-dev is already the newest version (1.4.8+dfsg-3build1).
make is already the newest version (4.3-4.1build1).
pkg-config is already the newest version (0.29.2-1ubuntu3).
checkinstall is already the newest version (1.6.2+git20170426.d24a630-2ubuntu2).
gsfonts is already the newest version (1:8.11+urwcyr1.0.7~pre44-4.5).
libde265-dev is already the newest version (1.0.8-1).
libgraphviz-dev is already the newest version (2.42.2-6).
liblqr-1-0-dev is already the newest version (0.4.2-2.1).
libopenexr-dev is already the newest version (2.5.7-1).
libx265-dev is already the newest version (3.5-2).
libzip-dev is already the newest version (1.7.3-1ubuntu2).
yasm is already the newest version (1.3.0-2.1).
cmake is already the newest version (3.22.1-1ubuntu1.22.04.1).
curl is already the newest version (7.81.0-1ubuntu1.13).
ghostscript is already the newest version (9.55.0~dfsg1-0ubuntu5.4).
git is already the newest version (1:2.34.1-1ubuntu1.10).
libgs-dev is already the newest version (9.55.0~dfsg1-0ubuntu5.4).
libpango1.0-dev is already the newest version (1.50.6+ds-2ubuntu1).
libraw-dev is already the newest version (0.20.2-2ubuntu2.22.04.1).
librsvg2-dev is already the newest version (2.52.5+dfsg-3ubuntu0.2).
libtiff-dev is already the newest version (4.3.0-6ubuntu0.5).
libwebp-dev is already the newest version (1.2.2-2ubuntu0.22.04.1).
libxml2-dev is already the newest version (2.9.13+dfsg-1ubuntu0.3).
perl is already the newest version (5.34.0-3ubuntu1.2).
ffmpeg is already the newest version (7:4.4.2-0ubuntu0.22.04.1).
0 upgraded, 0 newly installed, 0 to remove and 53 not upgraded.
  • Even after the 3rd round, my installed packages are:
$ dpkg -l | grep -E 'imagemagick|imei-'
ii  imei-libaom                           3.6.1-imei6.8.2                            amd64        AV1 Video Codec Library (IMEI v6.8.2)
ii  imei-libheif                          1.16.2-imei6.8.2                           amd64        ISO/IEC 23008-12:2017 HEIF file format decoder (IMEI v6.8.2)
ii  imei-libjxl                           0.8.2-imei6.8.2                            amd64        JPEG XL image format reference implementation (IMEI v6.8.2)

I.E., the imagemagick was not build and was not installed even after --force-imagemagick was used.

Here are further details that might be helpful.

The 3d round installation:

$ sudo bash "$t" --use-checkinstall --force-imagemagick

 ################################################
 Welcome to IMEI - ImageMagick Easy Install 6.8.2
 ################################################

 Detected OS     : Ubuntu 22.04.2 LTS
 Detected Arch   : x86_64
 Detected Cores  : 1

 Used web client : curl

 Work Dir        : /usr/local/src/imei
 Build Dir       : /usr/local
 Config Dir      : /usr/local/etc
 Log File        : /var/log/imei.log

 Force Build All : no
 Force Build IM  : no
 Checkinstall    : yes
 CI Build        : no
 Signature Check : yes

 #####################
 Installation Process
 #####################

 Installing dependencies       [OK]
 Building aom                  [SKIPPED]
 Building libheif              [SKIPPED]
 Building jpegxl               [SKIPPED]
 Building ImageMagick (Q16)    [SKIPPED]
 Verifying installation        [OK]
 Process has been finished successfully after 31 seconds!

$ dir /usr/local/src/
total 8532
-rw-r--r-- 1 root root 4353284 2023-08-28 23:56 imei-libaom_3.6.1-imei6.8.2_amd64.deb
-rw-r--r-- 1 root root  398516 2023-08-29 00:02 imei-libheif_1.16.2-imei6.8.2_amd64.deb
-rw-r--r-- 1 root root 3980338 2023-08-29 00:47 imei-libjxl_0.8.2-imei6.8.2_amd64.deb

gcc option -march=native is dangerous for docker images

I am compiling imagemagic-7 using imei.h to add heic support to a docker 20.04 image.

Users report illegal instruction crashes since this addition. The reason seems to be that imei.sh
defaults to quite aggressive CPU optimizations:

if [ -z "$BUILD_CFLAGS" ]; then
  BUILD_CFLAGS="-O3 -march=native"
fi

if [ -z "$BUILD_CXXFLAGS" ]; then
  BUILD_CXXFLAGS="-O3 -march=native"
fi

This is great for a local compile, where we are sure, that the CPU never changes.
When running as part of a docker build process, this assertion does not hold, and leads to illegal instruction crashes.

I suggest to test for the existance of /.dockerenv and switch optimization strategy to "best compatibility" then -> #84

[Feature Request] Build only option

Is it possible to provide an option just to build (the .deb packages) but not to install?

I know this might pose some challenges as libheif would require an installed aom, but still solvable by using extra LD_LIBRARY_PATH.

Two different versions

Hello. Dear admin; @SoftCreatR thanks for imei.

Ubuntu 20.04 installed on my vps server. I also installed the imagick program with apt. (8: 6.9.10.23 + dfsg-2.1ubuntu11.1)
then I installed imei. installation was smooth. but he still sees the old imagick program on the site.

imei
magick

I will be glad if you help have a nice day.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.