在Centos 5上安装RMagick ruby​​gem的问题

时间:2009-08-10 11:22:34

标签: rubygems rmagick centos5

我在Centos 5上安装RMagick ruby​​gem时遇到问题。我按照http://rmagick.rubyforge.org/install2-linux.html中详述的步骤进行了操作,但是当我尝试时:

sudo gem install rmagick

结果是:

Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for gcc... yes
checking for Magick-config... no
Can't install RMagick 2.11.0. Can't find Magick-config in /usr/bin:/bin

*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/local/bin/ruby


Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.11.0 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.8/gems/rmagick-2.11.0/ext/RMagick/gem_make.out

目录/ usr / local / bin包含Magick-config但我无法看到rubygems。我尝试了以下但结果是一样的:

sudo gem install rmagick -- --with-opt-dir=/usr/local/bin

任何建议都将不胜感激。

7 个答案:

答案 0 :(得分:41)

我最近将ImageMagick 6.5.4.7从CentOS6向后移植到CentOS5,所以现在安装rmagick会更容易:

rpm -Uvh http://rbel.co/rbel5
yum install ImageMagick-devel ImageMagick-c++-devel
gem install rmagick

答案 1 :(得分:25)

所以我终于设法安装了rmagick ruby​​gem的1.15.17版本!这是我做的:

  1. 卸载了ImageMagick 6.5.4-9以及我从源代码
  2. 安装的代理库
  3. sudo yum install ImageMagick
  4. sudo yum install ImageMagick-devel
  5. curl -O http://www.zacharywhitley.com/linux/rpms/fedora/core/6/i386/msttcorefonts-2.0-1.noarch.rpm
  6. sudo rpm -ivh msttcorefonts-2.0-1.noarch.rpm
  7. ln -s /usr/share/fonts/msttcorefonts/ /usr/share/fonts/default/TrueType
  8. sudo gem install rmagick -v 1.15.17 --no-rdoc --no-ri
  9. 来自David BockWill的博客条目非常宝贵。

答案 2 :(得分:9)

answer from rubiojr为我工作,但rbel.co此刻正在下降。您可以改用rbel.frameos.org:

rpm -Uvh http://rbel.frameos.org/rbel5
yum install ImageMagick-devel ImageMagick-c++-devel
gem install rmagick

答案 3 :(得分:3)

由于依赖于其他软件包等,rmagick很难安装。我刚刚在Ubuntu上玩这个游戏而且诀窍就是安装正确的软件包,包括dev软件包等。我不熟悉CentOS但是有人可能会为此提供合适的包装。

如果所有其他方法都失败了,通常可以从源代码构建和安装ImageMagick。

编辑:查看相关问题,我看到以下内容:

在某些平台(CentOS 5.2)上,我不得不安装特定版本的RMagick,因为我的软件包管理器(yum)的默认存储库只有旧版本的RMagick开发库。我通过以下方式安装了此版本:

gem install rmagick -v 1.15.13

答案 4 :(得分:1)

按照最多投票答案中的说明继续收到此错误:

RMagick: unable to read font `(null)'.

所以我有一些东西可以添加到第7步,取自David Bock博客的更新:

http://blog.codesherpas.com/on_the_path/2009/09/installing-centos-5-imagemagick-and-rmagick-september-2009-edition.html

gem install rmagick -v 1.15.17 --no-rdoc --no-ri -- --disable-htmldoc
如果您的字体文件使rmagick不满意,则禁用html文档对于避免进一步的错误至关重要。只是大约2个小时的努力与这个问题的结果。

答案 5 :(得分:1)

Centos 5.5 ImageMagick是遗留的,所以从源码安装到可以使用rmagick。

获取源RPM

wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/linux/SRPMS/ImageMagick.src.rpm
rpm -ivh --nomd5 ImageMagick.src.rpm
cd /usr/src/redhat/SPECS
rpmbuild -ba ImageMagick.spec

可能是因为:

会产生依赖性错误
  • perl-devel
  • 碧玉devel的
  • 中的djvulibre-devel的

添加到您的/etc/yum.repos.d/dag.repo

[dag]
name=Dag RPM Repository for CentOS5
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el5/en/$basearch/dag/
enabled=0
gpgcheck=1

然后导入GPG密钥并安装djvulibre-devel

rpm --import http://ftp.riken.jp/Linux/dag/RPM-GPG-KEY.dag.txt
yum --enablerepo=dag install djvulibre-devel

然后检查你是否可以制作RPM:

rpmbuild -ba ImageMagick.spec

如果你得到perl-devel依赖性错误。

yum install perl

然后编辑ImageMagick.spec并将“ perl-devel ”替换为“ perl ”,再次保存和rpmbuild。

rpmbuild -ba ImageMagick.spec

所以安装其他依赖项:

yum install freetype
yum install gd-devel
wget http://www.osresources.com/files/centos-windows-fonts/msfonts.tbz
mkdir /usr/share/fonts/default/TrueType
tar xvjpf msfonts.tbz -C /usr/share/fonts/default/TrueType/

让我们安装它:

cd /usr/src/redhat/RPMS/i386
rpm -Uvh ImageMagick-*

毕竟你可以测试你的RMagick是否已安装:

ruby -rrubygems -e "require 'RMagick'; puts Magick::Long_version;"

基于:

hi.baidu.com/rainchen/blog/item/089ef7364497de320a55a9a3.html

mobile-dev.izanagi-izanami.net/blog/?p=48

答案 6 :(得分:0)

我通过暂时将RHEL 5.4符号链接到/usr/local/bin/Magick-config,在/usr/bin/Magick-conf中解决了这个问题,因此gem install可以找到这个Magick-config可执行文件。

就我而言,我使用--prefix=/usr/local从源代码安装了ImageMagick。出于某种原因,即使使用gem install --local ../rmagick-2.12.2.gem -- -with-opt-dir=/usr/local/bin,gem安装也不希望查找配置。运行yum install ImageMagick-devel会在那里获得二进制文件,但是然后gem安装会说ImageMagick是错误的版本。