我在尝试在 CentOS 6.3 x86_64 服务器上安装最新版本的 ImageMagick 时遇到了麻烦。首先,我 [下载]1从 ImageMagick 站点下载 RPM 并尝试安装。由于缺少依赖项而失败:
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
我已经libtool-ltdl
安装了,但其中包含libltdl.so.7
,而不是。我对、和也遇到libltdl.so.4
了类似的问题。通常,您可以安装 OpenEXR 来获取这些依赖项。不幸的是,CentOS 6.3 包含 OpenEXR 1.6.1,其中包括 ilmbase-devel 1.0.1。并且 ilmbase-devel 的该版本包含这些依赖项的较新版本:libHalf
libIex
libIlmImf
libImath
libHalf.so.6
libIex.so.6
libIlmImf.so.6
libImath.so.6
我接下来尝试按照[说明]2从源代码安装 ImageMagick。也没有运气。我收到构建错误:
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.*
我甚至重新运行configure
以明确排除 djvu,但仍然出现相同的错误。此时,我感到很抓狂。
在 CentOS 6.3 上安装较新版本的 ImageMagick(> 6.7)的最简单方法是什么?有人提供 RPM 吗与依赖项某处?
答案1
你不应该有这些问题...我试图搜索当前版本的好的、固定的二进制文件图像魔术师。我找不到任何没有奇怪先决条件的东西……
所以我启动了一个 CentOS 6.3 虚拟机并构建了最新的 ImageMagick SRPM 文件。您可能希望启用RepoForge 存储库(以前称为 RPMForge)以及。构建过程非常顺利!
系统信息:
[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
开始安装:
[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
生成了这些文件:
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
安装软件包:
rpm -ivh /root/rpmbuild/RPMS/x86_64/ImageMagick-6.8.0-4.x86_64.rpm
检查已安装的二进制文件:
[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
检查新安装的软件包版本号:
[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
享受!!
答案2
由于没有人提到“无忧”的替代方案,我将添加一个新的答案。
如果你不介意使用非官方存储库,你可以按照此处所述启用 Remi 存储库http://blog.famillecollet.com/pages/Config-en之后,只需输入
yum install ImageMagick-last.x86_64 ImageMagick-last-devel.x86_64
您将获得最新版本之一,该版本已打包,并且每个依赖项都已由 yum 正确解析和处理。无需重新编译任何内容。
注意:它并不完全是您在官方网站上找到的最新版本,但似乎不会落后 1-2 个月。例如,在撰写本文时,最新的官方版本是 6.8.8(2014 年 1 月 12 日),而我在 remi repo 上找到的版本是 6.8.7(2013 年 12 月 15 日)。
答案3
我在 CentOS 7.2 和 ImageMagick 6.9.3-9 上遇到了这个问题。经过反复试验,我发现 6.9.3-8有效,而 6.9.3-9有无法解析的依赖项。幸运的是http://rpm.pbone.net/找到了一个包含旧版本的存储库。
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
答案4
如果您还需要安装 ImageMagicK 的开发版本,您可以运行:
rpm -ivh /root/rpmbuild/RPMS/x86_64/ImageMagick-devel-6.8.0-4.x86_64.rpm
如果您计划运行 ImagicK (PHP) 绑定,则需要执行此步骤。要安装 iMagicK,请输入:
pecl 安装 imagick