RMagick 安装:找不到 MagickWand.h
RMagick installation: Can't find MagickWand.h
更新RMagick and Imagemagick是一个痛苦的经历。我已经将 mac(MacOS El Capitan 版本 10.11.5)上的 Imagemagick 版本更新为 Ruby 2.3 中的一个项目的自制程序到 6.9.5-9
$ convert --version
Version: ImageMagick 6.9.5-9 Q16 x86_64 2016-09-09
现在 Ruby 1.8.7 中的旧项目拒绝使用错误消息 "this installation of RMagick was configured with ImageMagick 6.8.9 but ImageMagick 6.9.5-9 is in use"。因此我卸载了"rmagick",但无法再次安装
$ gem install rmagick -v 2.16.0
Building native extensions. This could take a while...
ERROR: Error installing rmagick:
ERROR: Failed to build gem native extension.
checking for /usr/local/opt/gcc46/bin/gcc-4.6... yes
checking for Magick-config... yes
checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... no
checking for sys/types.h... no
checking for wand/MagickWand.h... no
Can't install RMagick 2.16.0. Can't find MagickWand.h.
并且如果无法安装,则整个应用程序无法启动。目前我尝试了 here, and none of them works on MacOS :-( I reinstalled imagemagick and pkg-config with homebrew, and tried various version of RMagick without success. 2.16.0 is the latest version of RMagick 的所有答案。
MagicWand 好像是在 ImageMagick 版本 > 6.9 中使用,可以在 machine:
上找到
find /usr/local -name MagickWand.h
=> /usr/local/Cellar/imagemagick/6.9.5-9_1/include/ImageMagick-6/wand/MagickWand.h
find /usr/local -name MagickWand.pc
=> /usr/local/Cellar/imagemagick/6.9.5-9_1/lib/pkgconfig/MagickCore.pc
即使我在 gem 安装期间指定了这些路径,它也不起作用(与上述相同的错误):-(
C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.9.5-9_1/include/ImageMagick-6 PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick
更新:
错误只发生在Ruby 1.8.7,可以为Ruby 2.0 和Ruby 2.3 安装RMagick。 Ruby 1.8.7 和 ImageMagick 6.9.5 似乎不兼容。
- Ruby 1.8.7 x
- Ruby 2.0.0 ✓
- Ruby 2.3.1 ✓
$ brew remove imagemagick && brew install imagemagick
$ brew uninstall pkg-config && brew install pkg-config
$ brew unlink pkg-config && brew link pkg-config
$ gem install rmagick
我的系统出现严重错误,严重到完全崩溃,但我终于能够在安装 [=12= 之后再次为 Ruby 1.8.7 安装 RMagick ]
- 一个older version of ImageMagick with Homebrew
- 1.8.7 的新 Ruby 版本
- 新版 GCC
安装带有 RVM rvm install 1.8.7
的新 Ruby 版本还安装了新的 GCC 编译器:它删除了旧的 GCC 4.6 版并安装了 GCC 4.9 版。显然 GCC 无法找到正确的 headers 尽管 pkg-config.
ImageMagick 7.0.4-4 对我来说有些改变。 wand/MagickWand.h
找不到了:
% brew unlink imagemagick && brew link imagemagick
Unlinking /usr/local/Cellar/imagemagick/7.0.4-4... 71 symlinks removed
Linking /usr/local/Cellar/imagemagick/7.0.4-4... 71 symlinks created
% gem install rmagick
Building native extensions. This could take a while...
ERROR: Error installing rmagick:
ERROR: Failed to build gem native extension.
/Users/holger/.rbenv/versions/2.2.2/bin/ruby -r ./siteconf20170116-21103-1aikaka.rb extconf.rb
checking for clang... yes
checking for Magick-config... no
checking for pkg-config... yes
checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... no
Can't install RMagick 2.16.0. Can't find MagickWand.h.
我的系统上仍然有 ImageMagick 6.9.7-3 并改回
% brew switch imagemagick 6.9.7-3
Cleaning /usr/local/Cellar/imagemagick/6.9.6-6
Cleaning /usr/local/Cellar/imagemagick/6.9.7-0
Cleaning /usr/local/Cellar/imagemagick/6.9.7-1
Cleaning /usr/local/Cellar/imagemagick/6.9.7-3
Cleaning /usr/local/Cellar/imagemagick/7.0.4-4
75 links created for /usr/local/Cellar/imagemagick/6.9.7-3
之后我可以毫不费力地安装 rmagick
:
% gem install rmagick
Building native extensions. This could take a while...
Successfully installed rmagick-2.16.0
1 gem installed
我在使用 ImageMagick 7.0.4-4 时遇到了同样的问题。正确的修复是安装 imagemagick@6
。我发现 https://github.com/Homebrew/homebrew-core/pull/8756 如果你不小心删除了你的 imagemagick@6
或者一开始就没有安装它。
ImageMagick 7 中的许多事情都发生了变化,例如这条路径:include/.../wand
,而 wand/MagickWand.h
目前在 rmagic gem 中是硬连线的。就我而言,无法更新 gem,因为该项目相当陈旧。所以我最终安装了旧版本的 ImageMagic。
您可以从 6.x.x 安装最新版本:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/6f014f2b7f1f9e618fd5c0ae9c93befea671f8be/Formula/imagemagick.rb
您也可以固定它以备后用:
brew pin imagemagick
解决 Mac OSX Sierra、High Sierra、El Capitan、Mojave、Catalina、Big Sur 和 Monterey(M1 芯片),您可以执行以下操作:
brew unlink imagemagick
brew install imagemagick@6 && brew link imagemagick@6 --force
imagemagick@6
是 keg-only
,因此您需要强制链接。
macOS 塞拉利昂:
brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
在 7.0.7-1 中,您可以创建一个符号 link,但稍后编译会失败。
cd /usr/local/Cellar/imagemagick/7.0.7-1/include/ImageMagick-7
ln -s MagickWand/ wand
ln -s MagickCore/ magick
我还没有留下这个作为改进另一个答案的评论的声誉,但是@Evgeniy28 的答案只有在安装 pkg-config 之后才在 Sierra 上对我有用,默认情况下不会安装在新鲜的 Sierra 机器。
所以:
brew install pkg-config
brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
成功:
$ gem install rmagick
Building native extensions. This could take a while...
Successfully installed rmagick-2.16.0
Parsing documentation for rmagick-2.16.0
Installing ri documentation for rmagick-2.16.0
Done installing documentation for rmagick after 4 seconds
1 gem installed
首先,如果 imagemagick 安装了 6.x,则无需卸载它,如下所示。你可以看到当前的 "main" 是 7.0.7-8
但 6.9.1-10
仍然存在。
$ brew info imagemagick
imagemagick: stable 7.0.7-8 (bottled), HEAD
Tools and libraries to manipulate images in many formats
https://www.imagemagick.org/
/usr/local/Cellar/imagemagick/6.9.1-10 (1,450 files, 17.5MB)
Poured from bottle on 2015-07-26 at 09:10:58
/usr/local/Cellar/imagemagick/7.0.6-9 (1,522 files, 22.8MB)
Poured from bottle on 2017-08-21 at 14:44:16
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula
如果您没有旧的 6.x 版本,然后 安装 imagemagick@6。
其次,不要强制使用 link imagemagick,尤其是 6。编辑:参见 ¹
除了 --with-opt-* 标志之外,您还需要设置 PKG_CONFIG_PATH。
这对我在 High Sierra 上有效,在 Ruby 1.9.3-p551 上进行上述 brew 设置:
PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick/6.9.1-10/lib/pkgconfig \
gem install rmagick -v '2.16.0' -- \
--with-opt-lib=/usr/local/Cellar/imagemagick/6.9.1-10/lib/ \
--with-opt-include=/usr/local/Cellar/imagemagick/6.9.1-10/include/ImageMagick-6/
构建 ri 文档失败,但这些无关紧要。
¹:建筑工程,RMagick 正在搜索的 dylib 路径是错误的。提出 Issue #278 以澄清是否可以修复此问题。否则需要手动 symlinking libMagickWand 等。手动 link 特定库可能仍然比 brew link --force
更安全。
请按照以下内容,根据您的需要更改部分内容。
brew unlink imagemagick
brew install imagemagick@6 && brew link imagemagick@6 --force
export PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick@6/6.9.9-24/lib/pkgconfig
gem install rmagick -v '2.15.4'
我在里完整的解释了安装过程。
反正 ...
安装后安装 Imagick & ImageMagick-devel & ImageMagick PHP 库如下:
# yum install ImageMagick
# yum install ImageMagick-devel
# pecl install Imagick
转到/usr/include
cd /usr/include
重要:将 ImageMagick 文件夹从“/usr/include”复制到“/usr/local/include”,以便 ImageMagick 找到 "MagickWand.h"
我在 imagick-3.4.3(ImageMagick-7) 和 centos 6.5 和 php56 上测试了这个变化,并且完美运行...
如果您已经多次安装 "ImageMagick",请先将它们全部删除,然后找到 "ImageMagick" 和 "imagick" 文件夹并清理所有这些文件夹,然后使用此更改继续安装过程.
使用以下命令查找文件或文件夹:
find / -name 'ImageMagick*'
find / -name 'imagick*'
并继续安装
在下面几行之前不要忘记:
转到 "php.ini" 找到 "disable_functions" 并清理 "proc_open,popen,proc_close" 因为 make imagick 需要这些功能,
安装完成后,您可以将此功能添加到 "php.ini" 文件中的 "disable_functions"。
# phpize
# ./configure --with-php-config=/usr/local/php56/bin/php-config
...
祝你好运...
这是我在 macOS High Sierra 10.13.3 上使用 Homebrew 解决的方法(经过多次尝试和失败):
- RMagick 2.16.0 似乎与最新版本的 ImageMagick(版本 7)不兼容:http://wordsandmagic.com/2017/09/01/RMagick-2-16-0-Error-MagickWand
- 我卸载了 imagemagick:
brew uninstall imagemagick
- 然后我用这个公式安装了 Imagemagick:https://gist.github.com/JagdeepSingh/4b03cbeab16cc0bc729bbc6d275402d3
gem install rmagick
如果您已经安装了旧版本的 Imagemagick,这应该可以工作:
首先
通过使用取消链接你安装的 imagemagick,它在最新的 mac high sierra 中没有正确安装。
brew unlink imagemagick
然后使用以下命令安装最新的 imagemagic6
brew install imagemagick@6 && brew link imagemagick@6 --force
然后使用以下命令安装 gem rmagick
gem install rmagick
它将完美地工作。
对于 Ubuntu 版本 > 12 且不使用自制软件,
wget http://www.imagemagick.org/download/<required_imagemagick_version>
tar -xvf <path_to_your_downloaded_file>.tar.gz
如果您在 wget link 中获得“7z”文件而不是 'tar.gz' 文件,那么
7z x <path_to_your_downloaded_file>.7z
cd <path_to_your_downloaded_file>/
make
./configure
sudo make install
sudo ldconfig /usr/local/lib
然后您可以恢复 RMagick 的打包程序。
是的,这个解决了我的问题:
MacOS X 塞拉利昂:
brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
不需要 link 或取消 link 任何东西,按照 brew 安装脚本的说明帮助:
brew install imagemagick@6
LDFLAGS="-L/usr/local/opt/imagemagick@6/lib" CPPFLAGS="-I/usr/local/opt/imagemagick@6/include" PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig" gem install rmagick
安装 imagemagick 版本 6,因为版本 7 不兼容:
$ brew install imagemagick@6
不应该 link --force 旧版本 因为这会改变你路径中的二进制文件,好的 brew doctor
会抱怨。
引用 headers 和构建 gem 本机扩展时安装的版本 6 中的库:
$ PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick@6/6.9.10-14/lib/pkgconfig/ gem install rmagick -v '2.16.0'
注意:在没有指定 lib 和 include 文件夹的情况下为我工作,因为 pkgconfig 对此负责。
注:6.9.10-14是imagemagick@6的最新版本,如需使用其他版本请自行更改
RMagick 依赖于 imagemagick 的过时版本,第 6 版。(见下文) Homebrew 将其作为一个 keg-only 包提供,您可以安装:
brew install imagemagick@6
构建输出将包含一个 Caveats 部分(如果您清除了输出,也可从 brew info imagemagick@6
获得):
==> Caveats
imagemagick@6 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have imagemagick@6 first in your PATH run:
echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.zshrc
For compilers to find imagemagick@6 you may need to set:
export LDFLAGS="-L/usr/local/opt/imagemagick@6/lib"
export CPPFLAGS="-I/usr/local/opt/imagemagick@6/include"
For pkg-config to find imagemagick@6 you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"
而不是强制链接,它有可能导致其他 支持较新版本的 imagemagick 的软件出现问题,您可以使用建议的export
s 让 RMagick gem 在构建时选择旧版本:
export LDFLAGS="-L/usr/local/opt/imagemagick@6/lib"
export CPPFLAGS="-I/usr/local/opt/imagemagick@6/include"
export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"
gem install rmagick
- 如果你知道 Ruby 和 C!
就去 help contribute to the upgrade effort
生成 alpine 3.9 映像时出现同样的错误。它带有 ImageMagick 7.0.8.38-r0
要解决此问题,您可以将 alpine 3.5 与 ImageMagick 6.9.6.8-r1:
一起使用
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/
There is an open issue 在 rmagick 存储库中关于 ImageMagick 7 的失败构建。0.x。所以希望它会尽快修复。
正在为 Rails 应用程序 (Ruby 2.1.x / Rails 3.2.x) 处理遗留 Ruby一个客户端,需要在 MacOS Big Sur 上 运行 获取它。
rmagick 失败后输出如下:
/Users/robbyrussell/.rbenv/versions/2.1.0/bin/ruby extconf.rb
checking for clang... yes
checking for Magick-config... no
checking for pkg-config... yes
checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... no
Can't install RMagick 2.16.0. Can't find MagickWand.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=/Users/robbyrussell/.rbenv/versions/2.1.0/bin/ruby
extconf failed, exit code 1
Gem files will remain installed in /Users/robbyrussell/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/rmagick-2.16.0 for inspection.
Results logged to /Users/robbyrussell/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/extensions/x86_64-darwin-20/2.1.0-static/rmagick-2.16.0/gem_make.out
我解决这个问题的下一步是指示 Bundler 将一些标志传递给编译器:
bundle config build.rmagick -- --with-cflags=-Wno-implicit-function-declaration
通过 Homebrew,我 运行 以下内容:
% brew install imagemagick@6
然后按照输出的指导,我运行:
% export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"
% bundle install
.....
Fetching rmagick 2.16.0
Installing rmagick 2.16.0 with native extensions
瞧,我现在可以在本地 运行 这个应用程序了。
更新RMagick and Imagemagick是一个痛苦的经历。我已经将 mac(MacOS El Capitan 版本 10.11.5)上的 Imagemagick 版本更新为 Ruby 2.3 中的一个项目的自制程序到 6.9.5-9
$ convert --version
Version: ImageMagick 6.9.5-9 Q16 x86_64 2016-09-09
现在 Ruby 1.8.7 中的旧项目拒绝使用错误消息 "this installation of RMagick was configured with ImageMagick 6.8.9 but ImageMagick 6.9.5-9 is in use"。因此我卸载了"rmagick",但无法再次安装
$ gem install rmagick -v 2.16.0
Building native extensions. This could take a while...
ERROR: Error installing rmagick:
ERROR: Failed to build gem native extension.
checking for /usr/local/opt/gcc46/bin/gcc-4.6... yes
checking for Magick-config... yes
checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... no
checking for sys/types.h... no
checking for wand/MagickWand.h... no
Can't install RMagick 2.16.0. Can't find MagickWand.h.
并且如果无法安装,则整个应用程序无法启动。目前我尝试了 here, and none of them works on MacOS :-( I reinstalled imagemagick and pkg-config with homebrew, and tried various version of RMagick without success. 2.16.0 is the latest version of RMagick 的所有答案。
MagicWand 好像是在 ImageMagick 版本 > 6.9 中使用,可以在 machine:
上找到find /usr/local -name MagickWand.h
=> /usr/local/Cellar/imagemagick/6.9.5-9_1/include/ImageMagick-6/wand/MagickWand.h
find /usr/local -name MagickWand.pc
=> /usr/local/Cellar/imagemagick/6.9.5-9_1/lib/pkgconfig/MagickCore.pc
即使我在 gem 安装期间指定了这些路径,它也不起作用(与上述相同的错误):-(
C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.9.5-9_1/include/ImageMagick-6 PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick
更新:
错误只发生在Ruby 1.8.7,可以为Ruby 2.0 和Ruby 2.3 安装RMagick。 Ruby 1.8.7 和 ImageMagick 6.9.5 似乎不兼容。
- Ruby 1.8.7 x
- Ruby 2.0.0 ✓
- Ruby 2.3.1 ✓
$ brew remove imagemagick && brew install imagemagick
$ brew uninstall pkg-config && brew install pkg-config
$ brew unlink pkg-config && brew link pkg-config
$ gem install rmagick
我的系统出现严重错误,严重到完全崩溃,但我终于能够在安装 [=12= 之后再次为 Ruby 1.8.7 安装 RMagick ]
- 一个older version of ImageMagick with Homebrew
- 1.8.7 的新 Ruby 版本
- 新版 GCC
安装带有 RVM rvm install 1.8.7
的新 Ruby 版本还安装了新的 GCC 编译器:它删除了旧的 GCC 4.6 版并安装了 GCC 4.9 版。显然 GCC 无法找到正确的 headers 尽管 pkg-config.
ImageMagick 7.0.4-4 对我来说有些改变。 wand/MagickWand.h
找不到了:
% brew unlink imagemagick && brew link imagemagick
Unlinking /usr/local/Cellar/imagemagick/7.0.4-4... 71 symlinks removed
Linking /usr/local/Cellar/imagemagick/7.0.4-4... 71 symlinks created
% gem install rmagick
Building native extensions. This could take a while...
ERROR: Error installing rmagick:
ERROR: Failed to build gem native extension.
/Users/holger/.rbenv/versions/2.2.2/bin/ruby -r ./siteconf20170116-21103-1aikaka.rb extconf.rb
checking for clang... yes
checking for Magick-config... no
checking for pkg-config... yes
checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... no
Can't install RMagick 2.16.0. Can't find MagickWand.h.
我的系统上仍然有 ImageMagick 6.9.7-3 并改回
% brew switch imagemagick 6.9.7-3
Cleaning /usr/local/Cellar/imagemagick/6.9.6-6
Cleaning /usr/local/Cellar/imagemagick/6.9.7-0
Cleaning /usr/local/Cellar/imagemagick/6.9.7-1
Cleaning /usr/local/Cellar/imagemagick/6.9.7-3
Cleaning /usr/local/Cellar/imagemagick/7.0.4-4
75 links created for /usr/local/Cellar/imagemagick/6.9.7-3
之后我可以毫不费力地安装 rmagick
:
% gem install rmagick
Building native extensions. This could take a while...
Successfully installed rmagick-2.16.0
1 gem installed
我在使用 ImageMagick 7.0.4-4 时遇到了同样的问题。正确的修复是安装 imagemagick@6
。我发现 https://github.com/Homebrew/homebrew-core/pull/8756 如果你不小心删除了你的 imagemagick@6
或者一开始就没有安装它。
ImageMagick 7 中的许多事情都发生了变化,例如这条路径:include/.../wand
,而 wand/MagickWand.h
目前在 rmagic gem 中是硬连线的。就我而言,无法更新 gem,因为该项目相当陈旧。所以我最终安装了旧版本的 ImageMagic。
您可以从 6.x.x 安装最新版本:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/6f014f2b7f1f9e618fd5c0ae9c93befea671f8be/Formula/imagemagick.rb
您也可以固定它以备后用:
brew pin imagemagick
解决 Mac OSX Sierra、High Sierra、El Capitan、Mojave、Catalina、Big Sur 和 Monterey(M1 芯片),您可以执行以下操作:
brew unlink imagemagick
brew install imagemagick@6 && brew link imagemagick@6 --force
imagemagick@6
是 keg-only
,因此您需要强制链接。
macOS 塞拉利昂:
brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
在 7.0.7-1 中,您可以创建一个符号 link,但稍后编译会失败。
cd /usr/local/Cellar/imagemagick/7.0.7-1/include/ImageMagick-7
ln -s MagickWand/ wand
ln -s MagickCore/ magick
我还没有留下这个作为改进另一个答案的评论的声誉,但是@Evgeniy28 的答案只有在安装 pkg-config 之后才在 Sierra 上对我有用,默认情况下不会安装在新鲜的 Sierra 机器。
所以:
brew install pkg-config
brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
成功:
$ gem install rmagick
Building native extensions. This could take a while...
Successfully installed rmagick-2.16.0
Parsing documentation for rmagick-2.16.0
Installing ri documentation for rmagick-2.16.0
Done installing documentation for rmagick after 4 seconds
1 gem installed
首先,如果 imagemagick 安装了 6.x,则无需卸载它,如下所示。你可以看到当前的 "main" 是 7.0.7-8
但 6.9.1-10
仍然存在。
$ brew info imagemagick
imagemagick: stable 7.0.7-8 (bottled), HEAD
Tools and libraries to manipulate images in many formats
https://www.imagemagick.org/
/usr/local/Cellar/imagemagick/6.9.1-10 (1,450 files, 17.5MB)
Poured from bottle on 2015-07-26 at 09:10:58
/usr/local/Cellar/imagemagick/7.0.6-9 (1,522 files, 22.8MB)
Poured from bottle on 2017-08-21 at 14:44:16
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula
如果您没有旧的 6.x 版本,然后 安装 imagemagick@6。
其次,不要强制使用 link imagemagick,尤其是 6。编辑:参见 ¹
除了 --with-opt-* 标志之外,您还需要设置 PKG_CONFIG_PATH。
这对我在 High Sierra 上有效,在 Ruby 1.9.3-p551 上进行上述 brew 设置:
PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick/6.9.1-10/lib/pkgconfig \
gem install rmagick -v '2.16.0' -- \
--with-opt-lib=/usr/local/Cellar/imagemagick/6.9.1-10/lib/ \
--with-opt-include=/usr/local/Cellar/imagemagick/6.9.1-10/include/ImageMagick-6/
构建 ri 文档失败,但这些无关紧要。
¹:建筑工程,RMagick 正在搜索的 dylib 路径是错误的。提出 Issue #278 以澄清是否可以修复此问题。否则需要手动 symlinking libMagickWand 等。手动 link 特定库可能仍然比 brew link --force
更安全。
请按照以下内容,根据您的需要更改部分内容。
brew unlink imagemagick
brew install imagemagick@6 && brew link imagemagick@6 --force
export PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick@6/6.9.9-24/lib/pkgconfig
gem install rmagick -v '2.15.4'
我在
反正 ...
安装后安装 Imagick & ImageMagick-devel & ImageMagick PHP 库如下:
# yum install ImageMagick
# yum install ImageMagick-devel
# pecl install Imagick
转到/usr/include
cd /usr/include
重要:将 ImageMagick 文件夹从“/usr/include”复制到“/usr/local/include”,以便 ImageMagick 找到 "MagickWand.h"
我在 imagick-3.4.3(ImageMagick-7) 和 centos 6.5 和 php56 上测试了这个变化,并且完美运行...
如果您已经多次安装 "ImageMagick",请先将它们全部删除,然后找到 "ImageMagick" 和 "imagick" 文件夹并清理所有这些文件夹,然后使用此更改继续安装过程.
使用以下命令查找文件或文件夹:
find / -name 'ImageMagick*'
find / -name 'imagick*'
并继续安装
在下面几行之前不要忘记:
转到 "php.ini" 找到 "disable_functions" 并清理 "proc_open,popen,proc_close" 因为 make imagick 需要这些功能,
安装完成后,您可以将此功能添加到 "php.ini" 文件中的 "disable_functions"。
# phpize
# ./configure --with-php-config=/usr/local/php56/bin/php-config
...
祝你好运...
这是我在 macOS High Sierra 10.13.3 上使用 Homebrew 解决的方法(经过多次尝试和失败):
- RMagick 2.16.0 似乎与最新版本的 ImageMagick(版本 7)不兼容:http://wordsandmagic.com/2017/09/01/RMagick-2-16-0-Error-MagickWand
- 我卸载了 imagemagick:
brew uninstall imagemagick
- 然后我用这个公式安装了 Imagemagick:https://gist.github.com/JagdeepSingh/4b03cbeab16cc0bc729bbc6d275402d3
gem install rmagick
如果您已经安装了旧版本的 Imagemagick,这应该可以工作:
首先 通过使用取消链接你安装的 imagemagick,它在最新的 mac high sierra 中没有正确安装。
brew unlink imagemagick
然后使用以下命令安装最新的 imagemagic6
brew install imagemagick@6 && brew link imagemagick@6 --force
然后使用以下命令安装 gem rmagick
gem install rmagick
它将完美地工作。
对于 Ubuntu 版本 > 12 且不使用自制软件,
wget http://www.imagemagick.org/download/<required_imagemagick_version>
tar -xvf <path_to_your_downloaded_file>.tar.gz
如果您在 wget link 中获得“7z”文件而不是 'tar.gz' 文件,那么
7z x <path_to_your_downloaded_file>.7z
cd <path_to_your_downloaded_file>/
make
./configure
sudo make install
sudo ldconfig /usr/local/lib
然后您可以恢复 RMagick 的打包程序。
是的,这个解决了我的问题:
MacOS X 塞拉利昂:
brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
不需要 link 或取消 link 任何东西,按照 brew 安装脚本的说明帮助:
brew install imagemagick@6
LDFLAGS="-L/usr/local/opt/imagemagick@6/lib" CPPFLAGS="-I/usr/local/opt/imagemagick@6/include" PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig" gem install rmagick
安装 imagemagick 版本 6,因为版本 7 不兼容:
$ brew install imagemagick@6
不应该 link --force 旧版本 因为这会改变你路径中的二进制文件,好的 brew doctor
会抱怨。
引用 headers 和构建 gem 本机扩展时安装的版本 6 中的库:
$ PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick@6/6.9.10-14/lib/pkgconfig/ gem install rmagick -v '2.16.0'
注意:在没有指定 lib 和 include 文件夹的情况下为我工作,因为 pkgconfig 对此负责。
注:6.9.10-14是imagemagick@6的最新版本,如需使用其他版本请自行更改
RMagick 依赖于 imagemagick 的过时版本,第 6 版。(见下文) Homebrew 将其作为一个 keg-only 包提供,您可以安装:
brew install imagemagick@6
构建输出将包含一个 Caveats 部分(如果您清除了输出,也可从 brew info imagemagick@6
获得):
==> Caveats
imagemagick@6 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
If you need to have imagemagick@6 first in your PATH run:
echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.zshrc
For compilers to find imagemagick@6 you may need to set:
export LDFLAGS="-L/usr/local/opt/imagemagick@6/lib"
export CPPFLAGS="-I/usr/local/opt/imagemagick@6/include"
For pkg-config to find imagemagick@6 you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"
而不是强制链接,它有可能导致其他 支持较新版本的 imagemagick 的软件出现问题,您可以使用建议的export
s 让 RMagick gem 在构建时选择旧版本:
export LDFLAGS="-L/usr/local/opt/imagemagick@6/lib"
export CPPFLAGS="-I/usr/local/opt/imagemagick@6/include"
export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"
gem install rmagick
- 如果你知道 Ruby 和 C! 就去 help contribute to the upgrade effort
生成 alpine 3.9 映像时出现同样的错误。它带有 ImageMagick 7.0.8.38-r0
要解决此问题,您可以将 alpine 3.5 与 ImageMagick 6.9.6.8-r1:
一起使用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/
There is an open issue 在 rmagick 存储库中关于 ImageMagick 7 的失败构建。0.x。所以希望它会尽快修复。
正在为 Rails 应用程序 (Ruby 2.1.x / Rails 3.2.x) 处理遗留 Ruby一个客户端,需要在 MacOS Big Sur 上 运行 获取它。
rmagick 失败后输出如下:
/Users/robbyrussell/.rbenv/versions/2.1.0/bin/ruby extconf.rb
checking for clang... yes
checking for Magick-config... no
checking for pkg-config... yes
checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... no
Can't install RMagick 2.16.0. Can't find MagickWand.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=/Users/robbyrussell/.rbenv/versions/2.1.0/bin/ruby
extconf failed, exit code 1
Gem files will remain installed in /Users/robbyrussell/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/rmagick-2.16.0 for inspection.
Results logged to /Users/robbyrussell/.rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/extensions/x86_64-darwin-20/2.1.0-static/rmagick-2.16.0/gem_make.out
我解决这个问题的下一步是指示 Bundler 将一些标志传递给编译器:
bundle config build.rmagick -- --with-cflags=-Wno-implicit-function-declaration
通过 Homebrew,我 运行 以下内容:
% brew install imagemagick@6
然后按照输出的指导,我运行:
% export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"
% bundle install
.....
Fetching rmagick 2.16.0
Installing rmagick 2.16.0 with native extensions
瞧,我现在可以在本地 运行 这个应用程序了。