So installieren Sie Delegatenbibliotheken für Image Magick 7.0.7

So installieren Sie Delegatenbibliotheken für Image Magick 7.0.7

Ich habe Image Magick 7.0.7 aus dem Quellcode auf meinem Ubuntu 18.04-System erstellt.* Die Eingabe magick identify -versionin das Terminal gibt jetzt zurück

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

Es sind keine Delegaten installiert und jetzt muss ich es mit gängigen Dateitypen wie .jpg, .png und .tif zum Laufen bringen. Ich habe verwendet ./configure --enable-shared, aber diese Formate fehlen trotzdem. Allerdings gibt es auf meinem System eindeutig gemeinsam genutzte Bibliotheken dafür.

Die Delegate Library Configuration-Einträge für die Formate, die mir am meisten Sorgen bereiten, sind verwirrend:

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

Die zweite Zeile scheint anzuzeigen, dass versucht wurde, diese Formate zu installieren, aber die letzte Zeile zeigt anscheinend, dass keine Installation stattgefunden hat. Ich weiß daher nicht, was ich mit dieser Information anfangen soll.

Kann ich die fehlenden Delegierten aus demDelegiertenpakete, die sie zur Verfügung haben?

Bearbeiten:Diese Antwortbietet eine Teillösung, aber es fehlen immer noch viele Delegierte, darunter auch der, den ich wirklich brauche, TIFF. Die Frage, auf die sich die Antwort bezieht, zeigt, dass viel Aufwand erforderlich ist, um die von Image Magick verwaltete Delegiertenbibliothek erfolglos zu installieren, was entmutigend ist. Die Installation von dort scheint zum jetzigen Zeitpunkt immer noch die beste Option zu sein, falls jemand dazu einen Rat hat.


*(Beim Ausführen schlagen 2 Tests fehl, make checkalso führt es seine Testsuite aus, und ich habe gemäß den Protokollanforderungen ein Problem in ihrem GitHub-Repository geöffnet.)

Antwort1

Es sieht so aus, als ob Sie einfachübersprungeneinige der erforderlichen Bionic Beaver-Entwicklungsbibliotheken. Sobald diese installiert sind, kann es losgehen!

1. „Entwicklungs“-Dateien:

Am einfachsten generieren Sie die erforderliche Liste der Entwicklungsbibliotheken, indem Sie sicherstellen, dass das Kontrollkästchen „Quellen“ unter „Software und Updates“ aktiviert ist. Führen Sie anschließend den folgenden Befehl in einem Terminal aus:

apt-get -s build-dep imagemagick

Dassimulierter Lauf(-s) gibt Ihnen eine atemberaubende Anzahl von Dateien zum Installieren (240 MB Download bei einer sauberen Bionic Beaver-Installation). Ich habe dies bereits für Sie erledigt, führen Sie also einfach das Folgende auseinzelner Befehlum die benötigten Entwicklungsdateien hochzuladen:

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

Zusätzlich zu diesen Entwicklungsdateien können wir noch ein paar weitere hinzufügen, um die ImageMagick-Installation abzurunden, checkinstall, um beim Verpacken zu helfen, und ein paar weitere -dev-Dateien, um einige Delegierte zu erstellen, die im Standard-Ubuntu-Paket nicht enthalten sind. Das Folgende ist wiederein einziger Befehl:

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

2. Herunterladen, kompilieren und installieren:

Führen Sie dann Folgendes auseinzelner Befehlum die neueste Version von ImageMagick herunterzuladen und erfolgreich zu erstellen:

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

Wie ich bereits angegeben habe: ./configure --with-rsvg && makeSie können die Kompilierung erheblich beschleunigen, indem Sie etwa Folgendes hinzufügen: ./configure --with-rsvg && make -j 4, und eine Ganzzahl hinzufügen, die der Anzahl der auf Ihrem Prozessor verfügbaren Kerne entspricht ...

3. Testen Sie die Installation:

Beim Testen dieser Version werden die erforderlichen Delegierten angezeigtsicher installiert:

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

Und jetzt haben Sie die neueste Version von ImageMagick auf Bionic Beaver installiert, mit allen Delegierten, die Sie benötigen, und noch ein paar zusätzlichen, um sicherzugehen:).

Antwort2

Der von @andrew-46 vorgeschlagene Ansatz ist gut, es war hilfreich zu verstehenSo installieren Sie ImageMagick mit Delegierten auf Ubuntu 20.04

Ich weiß, dass sich die Antwort auf 18.04 bezog, aber vielleicht kann sie für jemand anderen nützlich sein.

Mein Ziel war insbesondere, es in ein Docker-Image zu installieren. Und so habe ich es gemacht:

# 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

Ich habe hier eine Liste der Abhängigkeiten gefundenhttps://launchpad.net/ubuntu/focal/+source/imagemagick

Antwort3

Ich hatte dasselbe Problem mit meiner ImageMagick-Installation und habe die wirklich hilfreiche Antwort von andrew.46 oben als Grundlage für meine Lösung verwendet.

Andrews Lösung schlug bei mir in diesem makeStadium fehl, da das .heicDelegate-Paket nicht richtig kompiliert wurde, wodurch der gesamte Prozess fehlschlug. Wenn Ihnen das passiert, gibt es zwei Lösungen: Kompilieren Sie ohne .heicUnterstützung, wenn Sie keine iPhone-Bilder verwenden müssen, oder installieren Sie die erforderlichen Pakete für das heic-Delegate-Paket.

1 'Entwicklungs'-Dateien

Befolgen Sie genau die obige Antwort von andrew.46.

2 Optional - Laden Sie Pakete herunter, um .heic-Delegat zu kompilieren

Ich habe die Antwort verwendetHierals Grundlage für meine Lösung. Sie müssen die Pakete libde265 und libheif installieren.

$ 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 Herunterladen, kompilieren und installieren

Sie können die Befehle in Andrews Antwort in kleinere Abschnitte aufteilen, um zu sehen, was passiert, wenn das hilfreich ist. Führen Sie einfach Teile des Befehls zwischen `&&' separat aus. (Mir war eigentlich nicht klar, dass man && verwenden kann, um Terminalbefehle zusammenzufügen – das ist ein Trick, den ich jetzt viel häufiger verwenden werde.)

Folgendes hat bei mir funktioniert:

$ 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

Beachten Sie, dass dies mit der neuesten Version von ImageMagick funktionieren sollte (stellen Sie einfach sicher, dass Sie `--pkgversion "7.0.10-14" durch die Version ersetzen, die Sie heruntergeladen haben).

Wenn Sie Schritt 2 oben nicht befolgt haben, müssen Sie ImageMagick ohne den heic-Delegierten konfigurieren. Führen Sie es einfach aus ./configure --with-rsvg --with-heic=nound Sie haben keinen .heic-Delegierten, aber die Kompilierung funktioniert.

4 Version überprüfen

Geben Sie es identify -versionin das Terminal ein, um die Installation zu überprüfen. Sie sollten die vollständige Liste der Delegierten haben.

$ 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

verwandte Informationen