可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I get the error shown below when attempting to install the rmagick gem. I am on Snowleopard 10.6 using RVM, Ruby 1.9.2-head and Rails 3.05. Responses to similar questions recommended installing ImageMagick, which I successfully did. Other suggested installing the "libmagick9-dev library", however, I can not figure out how to do this.
I'm a new developer, and any assistance or directions to an existing explanation or resource is greatly appreciated. Thanks!
jjdevenuta(opal)$ gem install rmagick Fetching: rmagick-2.13.1.gem (100%) Building native extensions. This could take a while... ERROR: Error installing rmagick: ERROR: Failed to build gem native extension. /Users/jjdevenuta/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb checking for Ruby version >= 1.8.5... yes checking for gcc... yes checking for Magick-config... no Can't install RMagick 2.13.1. Can't find Magick-config in /Users/jjdevenuta/.rvm/gems/ruby-1.9.2-head@rails3/bin:/Users/jjdevenuta/.rvm/gems/ruby-1.9.2-head@global/bin:/Users/jjdevenuta/.rvm/rubies/ruby-1.9.2-head/bin:/Users/jjdevenuta/.rvm/bin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/usr/X11/bin *** 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/jjdevenuta/.rvm/rubies/ruby-1.9.2-head/bin/ruby
UPDATE If you're a Mac/OS X user I would HIGHLY recommend using Homebrew as your package installer/manager. You can find it HERE. Since originally asking this question I have removed all my prior installs of things like rmagick and imagemagick, and reinstalled them using Homebrew. Super easy with a huge catalog of packages, and updates/uninstalls are a cinch as well!
回答1:
When building native Ruby gems, sometimes you'll get an error containing "ruby extconf.rb". This is often caused by missing development libraries for the gem you're installing, or even Ruby itself.
Do you have apt installed on your machine? If not, I'd recommend installing it, because it's a quick and easy way to get a lot of development libraries.
If you see people suggest installing "libmagick9-dev", that's an apt package that you'd install with:
$ sudo apt-get install libmagickwand-dev imagemagick
or on centOs:
$ yum install ImageMagick-devel
On Mac OS, you can use Homebrew:
$ brew install imagemagick
回答2:
The new correct way is to install libmagickwand-dev:
sudo apt-get install libmagickwand-dev
Then you should be able to install rmagick no problem.
回答3:
imagemagick@6 works for me!
brew unlink imagemagick brew install imagemagick@6 && brew link imagemagick@6 --force
See this thread
回答4:
Ubuntu 15.10
Note that if you try to install this gem in ubuntu 15.10, then error can happened:
Can't install RMagick 2.13.1. Can't find Magick-config in ...
All you need is preload PATH variable with additional path to ImageMagick lib.
PATH="/usr/lib/x86_64-linux-gnu/ImageMagick-6.8.9/bin-Q16:$PATH"
then run gem install rmagick
source of solution
回答5:
UPDATE If you're a Mac/OS X user I would HIGHLY recommend using Homebrew as your package installer/manager. You can find it HERE. Since originally asking this question I have removed all my prior installs of things like rmagick and imagemagick, and reinstalled them using Homebrew. Super easy with a huge catalog of packages, and updates/uninstalls are a cinch as well!
I finally got it working by utilizing a script for ImageMagick installation on github.
magick-installer ( https://github.com/maddox/magick-installer )
It made a fresh install of ImageMagick, and the RMagick 2.12.2 gem then installed perfectly via bundler.
Thanks to Hulihan Applications for confirming that it was most likely a missing library. I tried the suggestion of using apt-get by installing the package downloader from Fink Project. I ran the following command in terminal, but it couldn't find the libmagick9-dev libary.
$ sudo apt-get install libmagick9-dev
$ Password:
$ Reading Package Lists... Done
$ Building Dependency Tree... Done
$ E: Couldn't find package libmagick9-dev
I need to bone up on my UNIX command line skills. The original copy of ImageMagick that I installed from source is still on the machine, but I don't know where exactly or how to remove it. So much to learn...!
回答6:
Things change...maybe this will help someone else:
sudo apt-get install libmagick9-dev used to work. But with a later version of imagemagick I needed:
sudo apt-get install graphicsmagick-libmagick-dev-compat libmagickcore-dev libmagickwand-dev
回答7:
Try
1) apt-get install libmagickwand-dev 2) gem install rmagick
回答8:
For those who don't want to do the build-from-source approach of the (otherwise excellent installer script by John Maddox, the following worked for me when installing on CentOS 6.2. (Adjust your package manager as necessary).
yum install -y {libwmf,lcms,ghostscript,ImageMagick}{,-devel} gem install rmagick
Again, this is mainly of interest if you use your distro's package manager and would really prefer to keep it sane.
回答9:
In some OS you need to use new libraries: libmagick++4 libmagick++-dev
You can use:
sudo apt-get install libmagick++4 libmagick++-dev
回答10:
Important:
sudo apt-get install libmagick++4 libmagick++-dev
works on linux mint 13 after making updates:
sudo apt-get update
回答11:
in ubuntu 15.10
sudo apt-get install graphicsmagick-libmagick-dev-compat
did the trick for me
回答12:
If you get an error similar like:
The following packages have unmet dependencies: libmagickwand-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed Depends: libmagickcore-dev (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed
You might want to start with this package: sudo apt-get install libgvc5
For more details: https://askubuntu.com/a/230958/6506
回答13:
I ran this issue twice on different machine, first time it was resolved by installing the libmagick9-dev
sudo apt-get install libmagick9-dev
and second time i have to install the following libraries.
sudo apt-get install libmagick++4 libmagick++-dev
回答14:
On Mac OS X sudo port install ImageMagick turned out to work fine to fix the gem install rmagick problem . I just didn't know that it worked fine because rvm during installation blew away my .bash_profile contents which included MacPort's addition of /opt/local/bin to PATH. I put back /opt/local/bin into PATH in my .bash_profile and then my gem install rmagick then succeeded.
回答15:
I had this problem when I had already installed ImageMagick with macports. I ran
port contents ImageMagick | grep config
To find where the config file had been stored and then ran
PATH=(insert your path here):${PATH} bundle
to install the gem using bundler. From now on, if you run a command that needs to reference ImageMagick, you can prefix it with that command. For example I had a migration that referenced it, so I ran
PATH=/opt/local/bin/:${PATH} rake db:migrate
opt/local/bin/ is the path where my config file was stored.
回答16:
What I did to fix the problem on Ubuntu was
$ sudo apt-get install libmagickwand-dev $ sudo apt-get install ImageMagick
回答17:
Ubuntu:
sudo apt-get install imagemagick libmagickwand-dev libmagickcore-dev gem install rmagick
CentOS:
yum remove ImageMagick gem uninstall rmagick yum install ImageMagick ImageMagick-devel ImageMagick-last-libs ImageMagick-c++ ImageMagick-c++-devel gem install rmagick
MacOS:
download and install http://xquartz.macosforge.org/trac/wiki/X112.7.2
after:
brew uninstall imagemagick brew link xz jpeg freetype brew install imagemagick brew link --overwrite imagemagick gem install rmagick
回答18:
Can't install RMagick 2.13.2. in ubuntu 17.10
My decision
- sudo apt-get purge imagemagick libmagickcore-dev libmagickwand-dev - sudo apt-get autoremove - sudo rm /usr/bin/Magick-config - sudo apt-get install imagemagick libmagickwand-dev
Version is required to correctly specify the path to the configuration
- cd /usr/lib/x86_64-linux-gnu
- View version ImageMagick, my version ImageMagick - 6.9.7.
- cd ImageMagick-6.9.7/
- ls
- look at the name of the directory bin-q16 or bin-Q16
Creating a link to the config
sudo ln -s /usr/lib/x86_64-linux-gnu/ImageMagick-version/bin-directory/Magick-config /usr/bin/Magick-config
Creating for my version ImageMagick
- sudo ln -s /usr/lib/x86_64-linux-gnu/ImageMagick-6.9.7/bin-q16/Magick-config /usr/bin/Magick-config - bundle
回答19:
Installing rmagick gem in Ubuntu
sudo aptitude Install Imagemagick and GraphicsMagick(If not aptitude go & install in s/w center) sudo aptitude Install libmagickcore-dev libmagickwand-dev gem install rmagick -v 2.13.1
回答20:
For CentOS 5/6 this is what worked for me
yum remove ImageMagick yum install tcl-devel libpng-devel libjpeg-devel ghostscript-devel bzip2-devel freetype-devel libtiff-devel mkdir /root/imagemagick cd /root/imagemagick wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz tar xzvf ImageMagick.tar.gz cd ImageMagick-* ./configure --prefix=/usr/ --with-bzlib=yes --with-fontconfig=yes --with-freetype=yes --with-gslib=yes --with-gvc=yes --with-jpeg=yes --with-jp2=yes --with-png=yes --with-tiff=yes make make install
For 64 bit do this
cd /usr/lib64 ln -s ../lib/libMagickCore.so.3 libMagickCore.so.3 ln -s ../lib/libMagickWand.so.3 libMagickWand.so.3
Add the missing dependencies
yum install ImageMagick-devel
Then finally rmagick
gem install rmagick
If you need to start fresh remove other installs first with
cd /root/imagemagick/ImageMagick-* make uninstall
回答21:
On ubuntu, you also have to install imagemagick and libmagickcore-dev like this :
sudo apt-get install imagemagick libmagickcore-dev libmagickwand-dev
Everything is written in the doc.
回答22:
After much digging, I fixed this on debian 8.3 using information here: https://www.bountysource.com/issues/18142073-can-t-install-gem-on-ubuntu-15-04 Specifically:
sudo apt-get purge graphicsmagick graphicsmagick-dbg imagemagick-common imagemagick imagemagick-6.q16 libmagickcore-6-headers libmagickwand-dev sudo apt-get autoremove sudo apt-get install imagemagick libmagickwand-dev gem install rmagick
回答23:
execute this in terminal
sudo apt-get install libmagickcore-dev libmagickwand-dev
if its not work than
sudo ln -s /usr/lib/x86_64-linux-gnu/ImageMagick-6.8.9/bin-Q16/Magick-config /usr/local/bin/Magick-config
for reference
回答24:
Remember to ckeck the archive Gemfile.lock after the instalation. Remove this archive and execute bundle again. It works for me in linux :D