【问题标题】:Rails and OS X: How to install rmagick?Rails 和 OS X:如何安装 rmagick?
【发布时间】:2012-12-07 10:56:08
【问题描述】:

我已经完全绝望了——我花了一整天的时间尝试将rmagick gem 安装到 Mac OS X Lion,但实际上这是一场悲剧。 我在 Google 上看到了很多类似的主题,但没有任何帮助。

我尝试通过brew 完全卸载imagemagick 并重新安装(这工作正常),然后安装rmagick,但每次尝试安装此gem 时,都会收到此错误:

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

        /Users/adam/.rvm/rubies/ruby-1.9.3-p327/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
extconf.rb:128: Use RbConfig instead of obsolete and deprecated Config.
checking for clang... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.4.9... yes
checking for HDRI disabled version of ImageMagick... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... yes
checking for InitializeMagick() in -lMagickCore... no
checking for InitializeMagick() in -lMagick... no
checking for InitializeMagick() in -lMagick++... no
Can't install RMagick 2.13.1. Can't find the ImageMagick library or one of the dependent libraries. Check the mkmf.log file for more detailed information.

*** 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=/Users/adam/.rvm/rubies/ruby-1.9.3-p327/bin/ruby
    --with-MagickCorelib
    --without-MagickCorelib
    --with-Magicklib
    --without-Magicklib
    --with-Magick++lib
    --without-Magick++lib


Gem files will remain installed in /Users/adam/.rvm/gems/ruby-1.9.3-p327/gems/rmagick-2.13.1 for inspection.
Results logged to /Users/adam/.rvm/gems/ruby-1.9.3-p327/gems/rmagick-2.13.1/ext/RMagick/gem_make.out

无论我是通过 Gemfile 还是通过终端安装 gem,在这两种情况下我都会得到相同的错误输出。

这是imagemagick的版本:imagemagick-6.8.0-10

您能否给我一些提示或提前,问题可能出在哪里? 非常感谢!

【问题讨论】:

  • Check the mkmf.log file for more details了吗?
  • 说实话,我不知道在哪里可以找到这个文件(我试图通过 spotlight 搜索它,但我得到了很多结果)。
  • 你是否安装了 imagemagick 开发头文件?
  • Linuxios - 抱歉,我怎么才能找到它?

标签: ruby-on-rails ruby osx-lion homebrew rmagick


【解决方案1】:

这在 Catalina 中对我有用:

brew uninstall imagemagick
brew install imagemagick@6
export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"
brew link --force imagemagick@6
brew install pkg-config
gem install rmagick

【讨论】:

    【解决方案2】:

    这是针对 High Sierra、Mojave 和 Catalina 的修复,

    brew uninstall imagemagick
    brew install imagemagick@6export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"
    brew link --force imagemagick@6
    gem install rmagick
    

    来源:https://blog.francium.tech/installing-rmagick-on-osx-high-sierra-7ea71f57390d

    【讨论】:

      【解决方案3】:

      Mac OSX Sierra 和 Rails 5

      brew unlink imagemagick
      brew install imagemagick@6
      brew link imagemagick@6 --force
      

      【讨论】:

      • 最优雅的解决方案
      • 我们可以解决这个问题吗? 2012 年就像是石刃的解决方案
      【解决方案4】:

      截至 2017 年,自 Homebrew 切换到 ImageMagick 7.0 以来,上述所有解决方案似乎都不再有效。

      此处提供了一些解决方法。 https://github.com/rmagick/rmagick/issues/256

      我刚刚降级到 ImageMagick 6.9.7-3,gem install rmagick 工作正常。

      【讨论】:

        【解决方案5】:

        当我在安装 rmagick 时遇到问题时,我正在使用这个单线,每次都会发生这种情况......

        sudo C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.8.7-7/include/ImageMagick-6/ PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick/6.8.7-7/lib/pkgconfig/ gem install rmagick
        

        确保 imagemagick 的版本是正确的,你应该很高兴。如果您没有安装 imagemagick,请发送brew install imagemagick


        不得不发布这个,因为我一直在安装这个 gem 时遇到问题,而且每次我都忘记如何去做。

        【讨论】:

        • 现在是 2018 年,我能够使用以下过程安装 gem,我不得不将路径调整到最新版本,并且工作起来就像一个魅力。
        【解决方案6】:

        如果你使用自制软件,你只需要设置 PKG_CONFIG_PATH

        brew install imagemagick
        PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick//6.8.9-1/lib/pkgconfig/ gem install rmagick
        

        【讨论】:

        • 这似乎是一个不错的解决方案......虽然很奇怪,因为我的系统上不存在实际的PKG_CONFIG_PATH
        【解决方案7】:

        我遇到了同样的问题。

        如果您检查 mkmf.log,您将看到以下错误消息:

        ld: library not found for -lgomp
        clang: error: linker command failed with exit code 1 (use -v to see invocation)
        checked program was:
        /* begin */
        1: #include "ruby.h"
        2: 
        3: int main() {return 0;}
        /* end */\
        

        我是这样解决的:

        1. 卸载当前版本的 ImageMagick:

          brew uninstall imagemagick

        2. 重新安装不支持 openmp 的 imagemagick(这是负责 lgomp 的库):

          brew install imagemagick --disable-openmp

        3. 安装 rmagick:

          gem install rmagick

        就是这样!

        【讨论】:

        • 对于 OSX 10.9 Mavericks,按照这个答案中的步骤,然后按照这个stackoverflow.com/a/17285359/914986,然后运行gem install rmagick 就可以了。
        • 在 OSX Lion 上为我工作。
        【解决方案8】:

        尝试安装 6.7.7-6 版的 imagemagick,因为 6.8.x 版破坏了 rmagick gem。

        cd /usr/local
        git checkout 7d951fb /usr/local/Library/Formula/imagemagick.rb
        brew install imagemagick
        

        【讨论】:

        • 在 OS X Mavericks 上为我工作
        【解决方案9】:

        rmagick 在使用自制软件的 imagemagick (>= 6.8.0-10) 时遇到问题。

        你可以

        更新rmagickgem by

            bundle update rmagick
        

        或手动符号链接一些dylib使其工作:

            $ cd "`Magick-config --prefix`lib"
            $ ln -s libMagick++-Q16.7.dylib   libMagick++.dylib
            $ ln -s libMagickCore-Q16.7.dylib libMagickCore.dylib
            $ ln -s libMagickWand-Q16.7.dylib libMagickWand.dylib
        

        之后gem install rmagick 应该可以工作了。

        查看homebrew/issues/16625中关于此的讨论

        更新: 感谢@faraz 提供了不错的单行命令:

        cd "`Magick-config --prefix`/lib"; ln -s libMagick++-Q8.7.dylib libMagick++.dylib; ln -s libMagickCore-Q8.7.dylib libMagickCore.dylib; ln -s libMagickWand-Q8.7.dylib libMagickWand.dylib
        

        【讨论】:

        • 这是使用 Homebrew 安装 ImageMagick 6.8.10 和安装 RMagick 2.13.1 的正确答案。我的环境使用带有 Ruby 1.9.3-p327 的 RVM。引用:coderwall.com/p/wnomjg
        • 对于 8 位量子深度:cd "`Magick-conifig --prefix`/lib"; ln -s libMagick++-Q8.7.dylib libMagick++.dylib; ln -s libMagickCore-Q8.7.dylib libMagickCore.dylib; ln -s libMagickWand-Q8.7.dylib libMagickWand.dylib
        • @Sooie 说了什么。更新 Gemfile.lock 有助于解决这个问题。
        • 正确答案在这里,虽然我遇到了麻烦,因为我的 imagemagick 安装不在 /usr/local 中,而是在 /users/... 文件夹中。还是谢谢!
        • 在 Mac OS Mavericks 上这些都没有帮助我。所做的是重新安装新的 XCode 命令行工具:xcode-select --install
        【解决方案10】:

        或者,您可以退回到旧版本的 ImageMagick。 This thread 有操作说明:

        现在,为了尝试并真正有用,我建议您提取其中一个 将旧瓶子放入您的酒窖,然后进行 brew link imagemagick 如果 你卸载了旧版本。

        它们可以在这里找到: http://sourceforge.net/projects/machomebrew/files/Bottles/imagemagick-6.7.7-6.snowleopard.bottle.3.tar.gz/download http://sourceforge.net/projects/machomebrew/files/Bottles/imagemagick-6.7.7-6.lion.bottle.3.tar.gz/download http://sourceforge.net/projects/machomebrew/files/Bottles/imagemagick-6.7.7-6.mountainlion.bottle.3.tar.gz/download

        【讨论】:

          【解决方案11】:

          你安装了imagemagick后,可以试试

          > gem pristine rmagick
          

          从这个帖子中得到它。 Rails Rmagick gem。希望对您有所帮助。

          【讨论】:

          • 当我尝试运行这个命令时,我会得到:ERROR: While executing gem ... (Gem::Exception) Failed to find gems ["rmagick"] >= 0
          猜你喜欢
          • 2013-09-24
          • 2013-03-29
          • 2011-05-16
          • 2012-10-21
          • 2010-09-14
          • 1970-01-01
          • 2011-09-29
          • 2013-03-14
          • 1970-01-01
          相关资源
          最近更新 更多