Rails - 无法安装RMagick 2.16.0。找不到MagickWand.h

时间:2017-02-15 13:07:14

标签: ruby-on-rails rmagick magickwand

我很欣赏这个问题之前已被问过多次,但是我已经尝试了所有可用的答案都无济于事。错误日志如下:

have_header: checking for wand/MagickWand.h... -------------------- no

"gcc -E -I/Users/mark/.rvm/rubies/ruby-2.3.3/include/ruby-2.3.0/x86_64-darwin16 -I/Users/mark/.rvm/rubies/ruby-2.3.3/include/ruby-2.3.0/ruby/backward -I/Users/mark/.rvm/rubies/ruby-2.3.3/include/ruby-2.3.0 -I.  -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/local/Cellar/imagemagick/7.0.4-8/include/ImageMagick-7  -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -I/usr/local/Cellar/imagemagick/7.0.4-8/include/ImageMagick-7  conftest.c -o conftest.i"
conftest.c:3:10: fatal error: 'wand/MagickWand.h' file not found
#include <wand/MagickWand.h>
     ^
1 error generated.
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <wand/MagickWand.h>
/* end */

运行mdfind MagickWand.h后我可以看到路径是:

/usr/local/Cellar/imagemagick/7.0.4-8/include/ImageMagick-7/MagickWand/MagickWand.h
然后我跑了:

C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/7.0.4-8/include/ImageMagick-7/MagickWand/ gem install rmagick

然而,获得与以前相同的消息。

非常感谢任何有关如何解决此问题的帮助。

9 个答案:

答案 0 :(得分:25)

我有大约一个月的同样问题,Mark(自Imagemagick 7更新以来)。我在OSX Sierra上使用自制程序。

对于此问题的未来访问者,您可以尝试链接和取消链接pkgconfig(brew unlink pkgconfig && brew link pkgconfig)或指定Mayur描述的路径,但如果这些不起作用,则需要从源安装Imagemagick 6马克已经做了:

$ brew uninstall imagemagick
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/6f014f2b7f1f9e618fd5c0ae9c93befea671f8be/Formula/imagemagick.rb

我认为问题最终在于pkgconfig,所以当你看到对pkgconfig的更新时,应该再次尝试。

答案 1 :(得分:11)

在osx sierra为我工作了这个

brew unlink imagemagick
brew install imagemagick@6 && brew link imagemagick@6 --force
echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.bash_profile

得到RMagick installation: Can't find MagickWand.h

答案 2 :(得分:6)

Imagemagick 7似乎不合作。这是我发现的,它对我有用:

brew update
brew rm imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
bundle

如果您不想强制链接,您还可以执行以下操作:

brew install imagemagick@6
PKG_CONFIG_PATH=/usr/local/opt/imagemagick@6/lib/pkgconfig gem install rmagick

per @Leo的评论

请查看此GitHub Issue了解详情。

答案 3 :(得分:2)

我遇到了类似的问题

$ gem install rmagick

首先,您是否安装了imagemagick?如果您不确定,请运行

$ convert --version

如果你这样做,你可能要么用fink或macports安装它(也许是自制软件?)。发生的事情是rvm无法找到imagemagick目录。

阅读https://superuser.com/questions/361435/i-have-compiled-imagemagick-on-my-centos-and-rmagick-wont-install后,我通过添加

导出了imagemagick路径
$ export PKG_CONFIG_PATH="/opt/local/lib/pkgconfig:$PKG_CONFIG_PATH"

到我的〜/ .bash_profile,获取新的个人资料,然后再次运行gem install rmagick。

在我这样做之后,它对我有用。

答案 4 :(得分:0)

经过多次反复试验后,问题似乎是ImageMagick 7与OS Sierra不能很好地兼容。我降级到6,现在工作正常。

答案 5 :(得分:0)

这对我有用:

    $ brew unlink imagemagick
    $ brew install imagemagick@6 && brew link imagemagick@6 --force
    $ echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.zshrc
    $ bundle install

答案 6 :(得分:0)

这是对我有用的东西(这是一个没有perl依赖的特殊imagemagick)

def deconv_output_length(input_length, filter_size, padding, stride):
  """Determines output length of a transposed convolution given input length.
  Arguments:
      input_length: integer.
      filter_size: integer.
      padding: one of "same", "valid", "full".
      stride: integer.
  Returns:
      The output length (integer).
  """
  if input_length is None:
    return None
  input_length *= stride
  if padding == 'valid':
    input_length += max(filter_size - stride, 0)
  elif padding == 'full':
    input_length -= (stride + filter_size - 2)
  return input_length

我收到$ brew unlink pkg-config && brew reinstall pkg-config $ brew uninstall imagemagick $ brew install https://gist.githubusercontent.com/rootux/12cf343688b4ac28b2e9ae5f06827856/raw/3b678d601bef0902cb7ff6d9cc01b86dfd1f7932/imagemagick.rb 并遇到"Error: imagemagick: Unsupported special dependency :perl"的问题

答案 7 :(得分:0)

对于高山3.9图像生成,存在相同的错误。它带有ImageMagick 7.0.8.38-r0

要修复在ImageMagick 6.9.6.8-r1上使用Alpine 3.5:

FROM alpine:3.5

或将ImageMagick 6.9.6.8-r1与3.5的软件包存储库一起安装:

RUN apk add imagemagick-dev=6.9.6.8-r1 --repository http://dl-3.alpinelinux.org/alpine/v3.5/main/
rmagick回购中的

There is an open issue关于ImageMagick 7.0.x的构建失败。所以希望它将很快得到解决。

答案 8 :(得分:0)

ImageMagick 7.x 已经有几年了,这真的还是个问题吗?显然它仍然是,因为诸如 Debian 之类的软件以及那些疯狂到仍然以这种垃圾为目标的人仍在为 ImageMagick 6.x 开发。

您最好更新您的软件以使用 ImageMagick 7,而不是永远坚持使用旧版本。