ruby-on-rails - 在 Windows 7 上安装 ImageMagick 和 rmagick

标签 ruby-on-rails ruby windows

我正在尝试将 ImageMagick 和一个名为 rmagick 的 ruby​​ 库绑定(bind)安装到 Windows 机器上,以便与 rails + paperclip 一起使用。我目前正在运行 Windows 7。如果有帮助的话,我已经使用 Rails 安装程序为 Windows 机器设置了 Rails 环境。

我尝试了许多不同的资源,包括:

redmine

rmagick wiki

tutorial

我仍然收到这个错误

Temporarily enhancing PATH to include DevKit...
Building native extensions with: '--with-opt-dir="C:\ImageMagick"'
This could take a while...
ERROR:  Error installing rmagick:
        ERROR: Failed to build gem native extension.

   current directory: C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/rmag
ick-2.16.0/ext/RMagick
C:/RailsInstaller/Ruby2.2.0/bin/ruby.exe -r ./siteconf20170112-3020-wa31th.rb ex
tconf.rb --with-opt-dir="C:\ImageMagick"
*** 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
        --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:/RailsInstaller/Ruby2.2.0/bin/$(RUBY_BASE_NAME)
extconf.rb:141:in ``': No such file or directory - identify -version (Errno::ENO
ENT)
        from extconf.rb:141:in `configure_compile_options'
        from extconf.rb:16:in `initialize'
        from extconf.rb:548:in `new'
        from extconf.rb:548:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2
.0/gems/rmagick-2.16.0 for inspection.
Results logged to C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/extensions/x86
-mingw32/2.2.0/rmagick-2.16.0/gem_make.out

这是我做过的事情的列表:

  • 下载了镜像 magick 二进制文件
  • 使用路径选项安装,并设置 C 和 C++ header
  • 添加了指向下载的正确路径(在 wiki 中引用)
  • 安装了指向二进制下载的 rmagick gem

有没有人在 Windows 上成功安装 imagemagick?我可能需要也可能不需要使用 rmagick gem,因为它只是一个绑定(bind),但它似乎是比原始下载更好的选择。

如果有人成功完成此任务,我将不胜感激。

同样值得注意的是,我不依赖于 Paperclip + Imagemagick,如果有另一个适用于 Windows 的库,我也很乐意使用它。

最佳答案

我已经安装好了。您将需要安装 Ruby Devkit。
https://rubyinstaller.org/downloads/

这是一个非常乏味的过程,所以我为客户做了笔记。步骤标记错误,因为它包括首先安装 git 和 ruby​​。如果可用,我会使用网站上更新的说明。

我认为 ImageMagick 需要是版本 6,不确定。

注释如下:

3。安装开发套件

相同的链接 http://rubyinstaller.org/
下载解压到C:\RubyDevkit

如果您下载了 DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe,请执行步骤 3.1 和 3.2

对于其他版本,如果您收到错误消息,请使用 http://rubyinstaller.org/ 中的说明
用于链接到此文档: https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

3.1.整个 DevKit 过程一目了然

您需要打开 CMD.exe(不要使用 git bash)到 C:\RubyDevKit 并键入这些命令。

cd C:\RubyDevKit
ruby dk.rb init
ruby dk.rb install
devkitvars.bat

4。安装 imagemagick

如果你的 ruby​​ 是 32 位的,安装 32 位,否则安装 64 位。
可以肯定的是 ImageMagick-6.7.3-4-Q16-windows-dll.exe

不要安装在 Program Files 中,因为第 3 方脚本可能存在空格问题。

安装在 C:\ImageMagick 以便稍后复制粘贴命令

确保选中这些选项

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

5。安装 rmagick gem

仅运行 bundle install 失败,因为它需要更多选项。

cmd.exe
中的任何位置运行它 要打开 cmd.exe,请打开“开始”菜单并在 搜索程序和文件 下键入 cmd.exe

set CPATH="C:\ImageMagick\include"
set LIBRARY_PATH="C:\ImageMagick\lib"

不幸的是,这些命令没有像 OK 这样的视觉反馈。要获得反馈,您可以输入以下内容:

echo %CPATH%

你应该得到输出 "C:\ImageMagick\include"

echo %LIBRARY_PATH%

你应该得到输出 "C:\ImageMagick\lib"

gem install rmagick -- '--with-opt-dir="C:\ImageMagick"'

您应该会收到一条成功消息。您可以通过键入

来验证是否安装了 gem
gem list

它应该列出 rmagick。

先试试这个,但如果这不起作用,请在以下位置查找更多最新说明:
https://github.com/rmagick/rmagick/wiki/Installing-on-Windows

关于ruby-on-rails - 在 Windows 7 上安装 ImageMagick 和 rmagick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41622502/

相关文章:

javascript - 如何在 ruby​​ on Rails 5.2.3 中包含 javascript?

ruby-on-rails - 如何为脚本或批处理文件设置 rails_env

ruby-on-rails - 将变量从 .txt 文件插入 ERB

ruby-on-rails - 更新到 Rails 3.1.10 时出现冲突

ruby-on-rails - OS X 和 Windows 之间的文件权限发生了变化

ruby - 有没有办法告诉 Ruby 中的 Psych 使用内联模式?

ruby - 如何测试在 Sinatra Controller 中调用的方法?

c++ - 使用 VS2008 C++ 将类拆分为 DLL

c - 如何正确使用 ExAllocatePoolWithTag 使其不返回 STATUS_INSUFFICIENT_RESOURCES?

windows - 如何加速 Windows XP 应用程序中的 UDP 通信