Rails и OS X: Как установить rmagick?
Я уже полностью отчаялся - целый день я провел с попыткой установить rmagick
gem в Mac OS X Lion, но в буквальном смысле это трагедия.
Я видел много похожих потоков в Google, но ничто не помогло мне.
Я попытался полностью удалить imagemagick
через brew
и снова установить его (это работает хорошо), а затем установить rmagick
, но каждый раз, когда я пытаюсь установить этот камень, я получаю эту ошибку:
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
Не имеет значения, смогу ли я установить Gem через Gemfile или через Terminal, в обоих случаях я получаю одинаковый вывод ошибки.
Это версия imagemagick
: imagemagick-6.8.0-10.
Не могли бы вы дать мне несколько советов или заранее, где может быть проблема?
Большое вам спасибо!
Ответы
Ответ 1
У rmagick есть проблема, работающая с imagemagick ( >= 6.8.0-10) от доморощенного.
Вы можете либо
Обновить rmagick
драгоценный камень
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
Ответ 2
У меня была та же проблема.
Если вы проверите 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 */\
Вот как я его решил:
-
Удалите текущую версию ImageMagick:
brew uninstall imagemagick
-
Переустановите imagemagick без поддержки openmp (это библиотека, отвечающая за lgomp):
brew install imagemagick --disable-openmp
-
Установить rmagick:
gem install rmagick
Вот оно!
Ответ 3
Если вы используете доморощенный, вам просто нужно установить PKG_CONFIG_PATH
brew install imagemagick
PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick//6.8.9-1/lib/pkgconfig/ gem install rmagick
Ответ 4
Попробуйте установить версию 6.7.7-6 из imagemagick, так как версия 6.8.x разбивает драгоценный камень rmagick.
cd /usr/local
git checkout 7d951fb /usr/local/Library/Formula/imagemagick.rb
brew install imagemagick
Ответ 5
Mac OSX Sierra и Rails 5
brew unlink imagemagick
brew install [email protected]
brew link [email protected] --force
Ответ 6
По состоянию на 2017 год все предлагаемые выше решения, похоже, больше не работают, поскольку ни один из Homebrew не переключился на ImageMagick 7.0.
Ниже приведены некоторые обходные пути.
https://github.com/rmagick/rmagick/issues/256
Я только что понизился до ImageMagick 6.9.7-3 и gem install rmagick
работал нормально.
Ответ 7
Я использую этот однострочный вкладыш, когда у меня возникают проблемы с установкой 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
.
Пришлось публиковать это, потому что у меня возникают проблемы с установкой этого драгоценного камня, и каждый раз, когда я забываю, как это сделать.
Ответ 8
После установки imagemagick вы можете попробовать
> gem pristine rmagick
Получил это из этой темы. Rails Rmagick gem. Надеюсь, что это поможет.
Ответ 9
В качестве альтернативы вы можете вернуться к старой версии ImageMagick. В этом потоке есть инструкции о том, как это сделать:
Теперь, чтобы попробовать и действительно быть полезным, я рекомендую вам извлечь один из старые бутылки в ваш подвал, а затем выполните brew ссылку imagemagick if вы удалили старую версию.
Они доступны здесь: 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