Windows 7上使用Ruby on Rails RMagick

8

好的,我一整天都在尝试在Windows 7 x64机器上安装Rmagick。我查看了Stack Overflow和其他网站上的每个教程,但无论我遵循哪个教程,我都会收到“无效驱动器规范”错误。我的环境来自http://railsinstaller.org/。是否有最近成功安装Rmagick并可以指导我的人?谢谢,这让我发疯了,但我真的必须让它工作。

5个回答

22

首先,最重要的是在报告问题或请求帮助时,一定要提供有关你正在尝试安装的版本信息,特别是Ruby。

看起来你正在使用RailsInstaller进行安装,但由于你没有提到是否是2.0预览版或稳定版,我会假设你使用的是稳定版,它基于Ruby 1.8.7-p334。

现在,RailsInstaller已经包含了所需的组件:Ruby和RubyInstaller DevKit组件,因此将跳过安装步骤,直接进入RMagick本身。

为了成功安装RMagick gem,你需要带有开发头文件的ImageMagick二进制文件,如RubyInstaller的教程wiki页面中所述,其中链接此处

请下载32位版本的ImageMagick,因为Ruby是32位的。

对于我的测试,我已经下载了安装程序版本的ImageMagick-6.7.0-8-Q16-windows-dll.exe

下载并安装到没有空格的路径中,并选择选项安装C和C ++的开发头文件和库

然后打开一个新的命令提示符,确保Ruby可用(通过ruby -v检查),并执行以下命令:

gem install rmagick --platform=ruby -- --with-opt-lib=C:\ImageMagick-6.7.0-Q16\lib --with-opt-include=C:\ImageMagick-6.7.0-Q16\include

这个命令需要相当长的时间(在我的Core 2 Duo上花了1分钟),但最终结果是:

Fetching: rmagick-2.13.1.gem (100%)
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
Successfully installed rmagick-2.13.1
1 gem installed

现在你可以使用IRB验证RMagick是否已成功安装:

irb(main):001:0> require "rubygems"
=> true
irb(main):002:0> require "rmagick"
=> true
irb(main):003:0> Magick::Version
=> "RMagick 2.13.1"

如果你正在使用Ruby 1.9.2,最新的RMagick版本不兼容它,你需要从源代码构建。在RubyInstaller wiki上有另一个教程涵盖了这一点,但请阅读RubyInstaller组中的此线程,我们在其中讨论了问题。

希望所有这些都有所帮助。


谢谢您为我查看此问题,但是当我尝试进行gem安装时,仍然出现“无效的驱动器规范”错误。我的版本分别为Ruby 1.8.7和Rails 3.0.9。我完全按照说明操作,但仍然与所有其他有关此主题的教程得到相同的结果。有任何想法吗? - jwBurnside
好的,我终于弄清楚我做错了什么。我一直在使用Ruby和Rails的命令提示符来执行所有的命令行操作,我认为这可能会搞乱路径。我切换到常规的Windows命令提示符,然后就可以顺利执行了。 - jwBurnside
经过一天的尝试,这个解决方案终于奏效了!非常感谢! - Renato Lochetti
1
它使用ImageMagick 6.7.7和Ruby 1.9.3工作。有趣的细节是:我首先安装了64位版本,但失败了。然后,我尝试了32位版本,就像这个答案中所说的那样,它奏效了!即使我的Windows是64位的。 - Tiago Farias
@TiagoFarias 64位的Windows可以运行32位的应用程序。你需要知道Ruby是32位的。只有在Ruby 2.0.0中,我们才推出了64位版本,但为了使其正常工作,你需要所有相关的库和依赖项都有64位版本可用。 - Luis Lavena
谢谢,这个方法对我有效!只是要注意一点,我最初尝试在Git Bash上安装失败,提示“ERROR: Error installing rmagick: ERROR: Failed to build gem native extension.” 但后来我使用了Windows的Console2成功安装了它。 - uguMark

2

我尝试了上面的方法,但对我不起作用。关键在于使用RailsInstaller附带的GitBash,它还包含Devkit。

安装RailsInstaller -> www.railsinstaller.org (我将其安装在c:\ Rails下)
安装ImageMagick -> ImageMagick-6.7.3-8-Q16-windows-dll.exe (我将其安装在c:\ ImageMagick下)

打开GitBash

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


Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
Successfully installed rmagick-2.13.1
1 gem installed
Installing ri documentation for rmagick-2.13.1...
Installing RDoc documentation for rmagick-2.13.1...

另外,在Gemfile中,我已经在开发组中注释掉了gem 'rmagick'


这是我的Gemfile的样子

group :development do #this is used on localhost
 gem 'mysql2'
 gem 'paperclip'
 #gem 'rmagick' #dont need this
 gem 'devise'
end



group :production do #this is used on heroku
 gem "pg" #this is postgresql used on heroku
 gem "aws-s3" #this is used for amason S3 filestorage

 gem 'paperclip'
 gem 'rmagick'
 gem 'devise'
end

这个版本已被删除,点击链接时找不到,你知道其他的解决方案吗? - sunil

2
我们在Windows 7、Ruby 2.0和Rails 4.0上遇到了这个问题。
这个教程非常好用:
  1. 从ImageMagick.org下载最新的ImageMagick安装程序(撰写时,为"[ImageMagick-6.8.7-0-Q16-x86-dll.exe][3]"——完整的安装程序(而非二进制文件))

  2. 下载后,在不包含任何空格的文件路径中安装ImageMagick,并选中以下选项:

  • 将应用程序目录添加到系统路径中
  • 为C和C++库安装开发头文件
  1. 在Ruby CMD中使用正确的文件路径安装RMagick Gem:

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

这应该对你有帮助。


0

我大约一个月前安装了它。我必须克服的许多错误之一是“无效的驱动器规范”。

我刚刚开始写一个博客,发布了关于在Win7上安装RMagick的文章,基于我的自问自答的问题。 需要注意的是:我使用的是ruby 1.9.2,而railsinstaller似乎使用的是1.8.7。

如果我没记错的话,这个错误可能是由于您的ImageMagick安装路径中有空格引起的。


0

很抱歉,我没有足够的权限,在此处发布我的评论给Luis Lavena的答案。

对我有效的一个解决方案是从“带有Ruby和Rails的命令提示符”(从Windows开始菜单)运行Luis Lavena的解决方案。它会加载所有必要的配置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接