Installieren Sie den neuesten ImageMagick unter CentOS 6.3


13

Ich habe eine schreckliche Zeit damit, eine aktuelle Version von ImageMagick auf einem CentOS 6.3 x86_64-Server zu installieren. Zuerst habe ich das RPM von der ImageMagick-Site heruntergeladen und versucht, es zu installieren. Das scheiterte an fehlenden Abhängigkeiten:

error: Failed dependencies:
    libHalf.so.4()(64bit) is needed by ImageMagick-6.8.0-4.x86_64
    libIex.so.4()(64bit) is needed by ImageMagick-6.8.0-4.x86_64
    libIlmImf.so.4()(64bit) is needed by ImageMagick-6.8.0-4.x86_64
    libImath.so.4()(64bit) is needed by ImageMagick-6.8.0-4.x86_64
    libltdl.so.3()(64bit) is needed by ImageMagick-6.8.0-4.x86_64

Ich habe libtool-ltdlinstalliert, aber das schließt libltdl.so.7nicht ein libltdl.so.4. Ich habe ein ähnliches Problem mit libHalf, libIex, libIlmImfund libImath. Normalerweise können Sie OpenEXR installieren, um diese Abhängigkeiten abzurufen. Leider enthält CentOS 6.3 OpenEXR 1.6.1, das ilmbase-devel 1.0.1 enthält. Und diese Version von ilmbase-devel enthält neuere Versionen dieser Abhängigkeiten:

  • libHalf.so.6
  • libIex.so.6
  • libIlmImf.so.6
  • libImath.so.6

Als nächstes habe ich versucht, die Anweisungen zum Installieren von ImageMagick von der Quelle zu befolgen. Auch dort kein Glück. Ich erhalte einen Buildfehler:

RPM build errors:
  File not found by glob: /home/sean/rpmbuild/BUILDROOT/ImageMagick-6.8.0-4.x86_64/usr/lib64/ImageMagick-6.8.0/modules-Q16/coders/djvu.*

Ich habe sogar erneut ausgeführt configure, um djvu explizit auszuschließen, und es wird immer noch der gleiche Fehler angezeigt. An diesem Punkt ziehe ich mir die Haare aus.

Was ist der einfachste Weg, um eine relativ aktuelle Version von ImageMagick (> 6.7) auf CentOS 6.3 zu installieren? Bietet jemand RPMs mit Abhängigkeiten an ?


Ich hatte auch Probleme damit, nicht sicher, ob ich es jemals zum Laufen gebracht habe, aber Sie könnten versuchen: 'yum install libtool-ltdl-devel'
user16081-JoeT

In CentOS 6.3 libtool-ltdl-develenthält libltdl.so.7, aber ImageMagick erfordert libltdl.so.3. :(
organicveggie

Ich frage mich, ob sie sich ähnlich genug sind, um Symlinks von .3 bis .7 zu erstellen und ImageMagick so zu fälschen, dass es installiert wird. Insgesamt Hack bewegen, aber es könnte funktionieren: \
user16081-JoeT

Antworten:


12

Sie sollten diese Probleme nicht haben ... Ich habe versucht, nach netten, in Dosen enthaltenen Binärdateien einer aktuellen Version von ImageMagick zu suchen . Ich konnte keine finden, die ungerade Voraussetzungen hatten ...

Also habe ich eine virtuelle CentOS 6.3-Maschine hochgefahren und die neueste ImageMagick SRPM-Datei erstellt . Möglicherweise möchten Sie auch das RepoForge-Repository (früher RPMForge) aktivieren . Der Bau verlief reibungslos!

System Information:

[root@MDMarra ~]# uname -a
Linux MDMarra.localdomain 2.6.32-279.11.1.el6.x86_64 #1 SMP Tue Oct 16 15:57:10 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

[root@MDMarra ~]# cat /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m

[root@MDMarra ~]# yum repolist
repo id                                       repo name                                                     status
base                                          CentOS-6 - Base                                                 6346
extras                                        CentOS-6 - Extras                                                  6
rpmforge                                      Red Hat Enterprise 6 - RPMforge.net - dag                       4453
update                                        CentOS-6 - Updates                                               820

Beginnen Sie mit der Installation:

[root@MDMarra ~]# wget http://imagemagick.mirrorcatalogs.com/linux/SRPMS/ImageMagick-6.8.0-4.src.rpm
[root@MDMarra ~]# yum install bzip2-devel freetype-devel libjpeg-devel libpng-devel libtiff-devel giflib-devel zlib-devel ghostscript-devel djvulibre-devel libwmf-devel jasper-devel libtool-ltdl-devel libX11-devel libXext-devel libXt-devel lcms-devel libxml2-devel librsvg2-devel OpenEXR-devel
[root@MDMarra ~]# rpmbuild --rebuild ImageMagick-6.8.0-4.src.rpm

Diese Dateien wurden generiert:

Processing files: ImageMagick-debuginfo-6.8.0-4.x86_64
Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/ImageMagick-6.8.0-4.x86_64
Wrote: /root/rpmbuild/RPMS/x86_64/ImageMagick-6.8.0-4.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/ImageMagick-devel-6.8.0-4.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/ImageMagick-djvu-6.8.0-4.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/ImageMagick-doc-6.8.0-4.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/ImageMagick-perl-6.8.0-4.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/ImageMagick-c++-6.8.0-4.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/ImageMagick-c++-devel-6.8.0-4.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/ImageMagick-debuginfo-6.8.0-4.x86_64.rpm

Installieren Sie das Paket:

rpm -ivh /root/rpmbuild/RPMS/x86_64/ImageMagick-6.8.0-4.x86_64.rpm 

Überprüfen Sie die installierten Binärdateien:

[root@MDMarra ~]# rpm -qlp /root/rpmbuild/RPMS/x86_64/ImageMagick-6.8.0-4.x86_64.rpm| grep bin
/usr/bin/animate
/usr/bin/compare
/usr/bin/composite
/usr/bin/conjure
/usr/bin/convert
/usr/bin/display
/usr/bin/identify
/usr/bin/import
/usr/bin/mogrify
/usr/bin/montage
/usr/bin/stream

Überprüfen Sie die Versionsnummer des neu installierten Pakets:

[root@MDMarra ~]# /usr/bin/convert -version
Version: ImageMagick 6.8.0-4 2012-11-07 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP    

Genießen!!


Hrmmm. Interessant. Ich habe djvulibre-devel, libwmf-devel, jasper-devel oder giflib-devel nicht installiert, als ich versucht habe, das RPM neu zu erstellen. Lass es mich versuchen.
Bio-Gemüse

Die Liste der * -Devel-Pakete, die zum Erstellen des RPM benötigt werden, wurde in der Fehlermeldung aufgeführt, die ich beim ersten rpmbuildAusführen des SRPM erhalten habe. Ich könnte auch einfach die resultierende Datei hochladen ... Aber ich wollte die Schritte skizzieren, die ich unternommen habe.
ewwhite

Siehe, ich habe fälschlicherweise die Anweisungen befolgt, die mich aufgefordert haben, das SRPM zuerst neu zu erstellen. Irgendwie ließ mich dieser Schritt die Überprüfung auf fehlende RPMs überspringen rpmbuild. Seltsam. Das Installieren der fehlenden RPMs hat den Trick getan! Ich konnte die endgültigen RPMs erstellen und problemlos installieren. Tests haben ergeben, dass die Binärdateien einwandfrei funktionieren. Vielen Dank!
Bio-Gemüse

10
Warum bist du in mich verwickelt? Das ist wirklich umständlich.
MDMarra,

4
@ DMarra: Du wirst gleich heiraten. Sei dankbar für jede Aktion.
Scott Pack

5

Da niemand eine "stressfreie" Alternative erwähnte, werde ich eine neue Antwort hinzufügen.

Wenn es Ihnen nichts ausmacht, nicht offizielle Repositorys zu verwenden, können Sie das Remi-Repository wie hier beschrieben aktivieren: http://blog.famillecollet.com/pages/Config-de . Danach einfach tippen

yum install ImageMagick-last.x86_64 ImageMagick-last-devel.x86_64

Und Sie erhalten eine der neuesten verfügbaren Versionen, die bereits gepackt und mit jeder Abhängigkeit von yum korrekt aufgelöst und gehandhabt wurde. Sie müssen nichts neu kompilieren.

Hinweis: Es ist nicht genau auf dem neuesten Stand der Version, die Sie auf der offiziellen Website finden, aber es scheint nicht mehr als 1-2 Monate nach. Zum Zeitpunkt des Schreibens ist die letzte offizielle Version beispielsweise 6.8.8 (12. Januar 2014), während diejenige, die ich auf dem Remi-Repo gefunden habe, 6.8.7 (15. Dezember 2013) ist.


Oder Sie können von Remi Repo als eine einmalige mitsudo yum --enablerepo=remi install ImageMagick-last.x86_64 ImageMagick-last-devel.x86_64
user56reinstatemonica8

1

Ich hatte dieses Problem mit CentOS 7.2 und ImageMagick 6.9.3-9. Nach viel Versuch und Irrtum entdeckte ich , dass 6.9.3- 8 Werke, während 6.9.3- 9 Abhängigkeiten hat , die zu lösen scheitern. Zum Glück hat http://rpm.pbone.net/ ein Repository mit der älteren Version gefunden.

IMAGEMAGICK_VERSION=6.9.3-8
# Be warned, 6.9.3-9 does not work; dependencies fail to resolve
IMAGEMAGICK_LIBS_SHA1=c0919e4ef4b7edc1052ef40eef4cc34f7a86341c
IMAGEMAGICK_SHA1=f99eda483850dd116b08e5527d603be2a47db8c4

curl -O ftp://ftp.icm.edu.pl/vol/rzm4/ImageMagick/linux/CentOS/x86_64/ImageMagick-libs-$IMAGEMAGICK_VERSION.x86_64.rpm \
    && sha1sum ImageMagick-libs-$IMAGEMAGICK_VERSION.x86_64.rpm | grep $IMAGEMAGICK_LIBS_SHA1 \
    && yum install -y ImageMagick-libs-$IMAGEMAGICK_VERSION.x86_64.rpm \
    && rm ImageMagick-libs-$IMAGEMAGICK_VERSION.x86_64.rpm \
    && curl -O ftp://ftp.icm.edu.pl/vol/rzm4/ImageMagick/linux/CentOS/x86_64/ImageMagick-$IMAGEMAGICK_VERSION.x86_64.rpm \
    && sha1sum ImageMagick-$IMAGEMAGICK_VERSION.x86_64.rpm | grep $IMAGEMAGICK_SHA1 \
    && yum install -y ImageMagick-$IMAGEMAGICK_VERSION.x86_64.rpm \
    && rm ImageMagick-$IMAGEMAGICK_VERSION.x86_64.rpm

0

Anscheinend benötigen Sie Folgendes oder zumindest einige der folgenden Elemente:

OpenEXR-devel.i686
OpenEXR-devel.x86_64
OpenEXR-libs.i686
OpenEXR-libs.x86_64

yum install OpenEXR-devel.i686 OpenEXR-libs.i686 OpenEXR-devel.x86_64 OpenEXR-libs.x86_64

Die Installation von all 4 sollte nicht zu einer solchen Belastung oder Erhöhung des Speicherplatzbedarfs führen. Dies sind jedoch die Pakete, die zurückgegeben werden, wenn ich auf http://rpm.pbone.net/ nach "libHalf.so.4" oder "libHalf.so.4" suche. libIlmImf.so.4 'zum Beispiel.


Ich werde meinen Beitrag aktualisieren, um dies zu klären, aber ich bin diesen Weg bereits gegangen. CentOS 6.3 hat OpenEXR 1.6.1, das neuere Versionen von Dingen wie libHalf( libHalf.so.6zum Beispiel) enthält.
Bio-Gemüse

0

Wenn auch die Entwicklungsversion von ImageMagicK installiert sein muss, können Sie Folgendes ausführen:

rpm -ivh /root/rpmbuild/RPMS/x86_64/ImageMagick-devel-6.8.0-4.x86_64.rpm

Dieser Schritt ist erforderlich, wenn Sie die ImagicK (PHP) -Bindungen ausführen möchten. So installieren Sie iMagicK:

pecl installiere imagick

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.