我无法在Windows上安装rmagick gem

时间:2011-02-02 10:26:08

标签: ruby windows ruby-on-rails-3 imagemagick rmagick

我使用了ruby 1.9.2和rails 3.0.3。我试图安装rmagick gem但是当我运行bundle install时我得到一个错误告诉我:

Installing rmagick (2.12.1) with native extensions c:/Ruby192/lib/ruby/site_ruby
/1.9.1/rubygems/installer.rb:529:in `rescue in block in build_extensions': ERROR
: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

       c:/Ruby192/bin/ruby.exe extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... *** 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=c:/Ruby192/bin/ruby
c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to genera
te an executable file. (RuntimeError)
You have to install development tools first.
       from c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
       from c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:834:in `block in have_header'
       from c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
       from c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postp
one'
       from c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:254:in `open'
       from c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
       from c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:254:in `open'
       from c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
       from c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
       from c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:833:in `have_header'
       from extconf.rb:171:in `<main>'


Gem files will remain installed in c:/Ruby192/lib/ruby/gems/1.9.1/gems/rmagick-2
.12.1 for inspection.
Results logged to c:/Ruby192/lib/ruby/gems/1.9.1/gems/rmagick-2.12.1/ext/RMagick
/gem_make.out
       from c:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:507:in `b
lock in build_extensions'
       from c:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:482:in `e
ach'
       from c:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:482:in `b
uild_extensions'
       from c:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:156:in `i
nstall'
       from c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/sour
ce.rb:96:in `install'
       from c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/inst
aller.rb:55:in `block in run'
       from c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/spec
_set.rb:12:in `block in each'
       from c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/spec
_set.rb:12:in `each'
       from c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/spec
_set.rb:12:in `each'
       from c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/inst
aller.rb:44:in `run'
       from c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/inst
aller.rb:8:in `install'
       from c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/cli.
rb:226:in `install'
       from c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/vend
or/thor/task.rb:22:in `run'
       from c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/vend
or/thor/invocation.rb:118:in `invoke_task'
       from c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/vend
or/thor.rb:246:in `dispatch'
       from c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/lib/bundler/vend
or/thor/base.rb:389:in `start'
       from c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.10/bin/bundle:13:in
`<top (required)>'
       from c:/Ruby192/bin/bundle:19:in `load'
       from c:/Ruby192/bin/bundle:19:in `<main>'

我使用开发工具包和最新版本的ImageMagick从http://rubyinstaller.org/downloads/安装了ruby。我试图设置rmagick配置(lib和包含目录),但我仍然得到相同的错误

任何帮助?有什么想法来解决这个问题?

5 个答案:

答案 0 :(得分:15)

前提条件:
Ruby&gt; 1.8.6
DevKit(任何版本)
没有其他ImageMagick安装或PATH条目

第1步: 安装ImageMagick:

下载ImageMagick: http://imagemagick.spd.co.il/binaries/ImageMagick-6.8.0-3-Q16-windows-dll.exe

安装ImageMagick:
*重要提示:安装路径不应包含任何空格 理想情况下选择“C:\ ImageMagick”

请务必选择以下选项:

  

将应用程序目录添加到路径系统中   安装C和C ++的开发头文件和库

第2步: 安装rmagick:

使用以下命令安装rmagick gem:

gem install rmagick --platform=ruby -- --with-opt-lib=c:/ImageMagick/lib --with-opt-include=c:/ImageMagick/include

通过 -

http://shoobm.wordpress.com/2013/01/03/installing-rmagick-gem-on-windows-7/

答案 1 :(得分:1)

我有the same problem,我的环境是:

windows XP (x32)
ruby 1.9.3p484 (2013-11-22) [i386-mingw32]
DevKit-tdm-32-4.5.2-20111229-1559-sfx
ImageMagick-6.8.8-2-Q8-x64-static.exe

在将ImageMagick从v6.8.8重新安装到6.6.7后,我成功安装了rmagik gem。 这只是一个不兼容版本的问题......

答案 2 :(得分:0)

使用 rmagick-win32 gem,它不需要单独使用ImageMagick。这是捆绑的。

请看一下:http://rmagick.rubyforge.org/install-faq.html#win

答案 3 :(得分:0)

请参阅RubyInstaller小组中的this thread,该小组指向我们的Tutorials page,您可以在其中找到描述安装方法的this blog post

答案 4 :(得分:0)

首先清除你的路径环境变量。 (这是人们经常跳过的主要步骤,但非常重要)。这是您遇到错误的主要原因。

然后从此处安装rails installer(2.0.0):http://railsinstaller.org/en

它将设置红宝石,铁轨以及您需要的一切。 这也将为您设置环境路径变量。

接下来安装imagemagick 6.7.9.9或更低版本并在安装时选中包含C标头的选项。确保将其安装在rails安装程序文件夹中。

然后在命令提示符path=c:\RailsInstaller\ImageMagick-6.7.9-Q8;%path%或您拥有的任何版本中键入此内容。

然后输入

gem install rmagick -- '--with-opt-dir="c:\RailsInstaller\ImageMagick-6.7.9-Q8"'

最后编辑C:\ RailsInstaller \ Ruby2.0.0 \ setup_environment.bat以包含ImageMagic的路径

第25行:SET PATH=c:\RailsInstaller\ImageMagick-6.7.9-Q8;或您拥有的任何版本