无法在Ubuntu 13.04上安装rmagick gem

7

当我尝试使用以下命令安装rmagic时:

gem install rmagic

这会报错:

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

    /home/biske/.rbenv/versions/2.0.0-p247/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for gcc... 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... no

Can't install RMagick 2.13.2. 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=/home/biske/.rbenv/versions/2.0.0-p247/bin/ruby


Gem files will remain installed in /home/biske/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rmagick-2.13.2 for inspection.
Results logged to /home/biske/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rmagick-2.13.2/ext/RMagick/gem_make.out

我尝试搜索问题并发现我缺少libmagickwand-dev。 我尝试使用以下命令进行安装:

sudo apt-get install libmagickwand-dev

但它引发了错误:

The following packages have unmet dependencies:
 libmagickwand-dev : Depends: libmagickcore-dev (= 8:6.7.7.10-5ubuntu2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

如果我尝试使用以下方式安装它:

sudo apt-get install libmagickcore-dev

它出现错误:

The following packages have unmet dependencies:
 libmagickcore-dev : Depends: librsvg2-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

如果我尝试安装它:

sudo apt-get install librsvg2-dev

它报错了:

The following packages have unmet dependencies:
 librsvg2-dev : Depends: libglib2.0-dev (>= 2.24.0) but it is not going to be installed
                Depends: libgdk-pixbuf2.0-dev (>= 2.23.5-2) but it is not going to be installed
                Depends: libcairo2-dev (>= 1.2.0) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

如果我尝试使用以下命令安装libglib2.0-dev:

sudo apt-get install libglib2.0-dev

它出现了错误:

The following packages have unmet dependencies:
 libglib2.0-dev : Depends: libglib2.0-0 (= 2.36.0-1ubuntu1) but 2.36.0-1ubuntu2 is to be installed
                  Depends: libglib2.0-bin (= 2.36.0-1ubuntu1)
E: Unable to correct problems, you have held broken packages.

如果我使用以下命令安装 libglib2.0-0:

sudo apt-get install libglib2.0-0

它给出:

libglib2.0-0 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

如果我使用以下命令安装libglib2.0-bin:
sudo apt-get install libglib2.0-bin

它给出:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
libglib2.0-bin is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

这两个库已安装,但再次发出以下命令:

sudo apt-get install libglib2.0-dev

出现相同的错误:

The following packages have unmet dependencies:
 libglib2.0-dev : Depends: libglib2.0-0 (= 2.36.0-1ubuntu1) but 2.36.0-1ubuntu2 is to be installed
                  Depends: libglib2.0-bin (= 2.36.0-1ubuntu1)
E: Unable to correct problems, you have held broken packages.

这里可能存在什么问题?
我使用的是Ubuntu 13.04,rbenv和ruby 2.0.0,如果这些对问题有影响的话。

你安装了ImageMagick吗? - Sachin Singh
在你的终端上运行以下命令:'sudo apt-get install -f'。 - Sachin Singh
哇,你刚刚解释了我遇到的完全相同的问题!谢谢。 - Aleks
如果您尝试了所有方法都无效,请访问以下链接:http://askubuntu.com/questions/140246/how-do-i-resolve-unmet-dependencies-after-adding-a-ppa - Moin Haidar
6个回答

16

试一试这个

首先安装ImageMagick

sudo apt-get install imagemagick

然后

sudo apt-get install libmagickwand-dev

谢谢!顺序很重要。 - heemin
我也遇到了这个问题,只安装了libmagickwand-dev。当我安装了imagemagick后,宝石编译就没有问题了。 - robvelor
我反复尝试了libmagickwand-dev(期间进行了删除和自动删除),但它一再失败。首先安装imagemagick是一个救命稻草。谢谢! - Steve Upstill

14

解决方法是添加一个PPA,可以在其中找到这些库。

添加PPA:

sudo add-apt-repository ppa:ricotz/testing

然后更新软件包列表:

sudo apt-get update

最后使用以下命令进行安装:

sudo apt-get install libmagickwand-dev

哇,你提供了我所需要的确切解决方案!add-apt 解决了问题和接下来的步骤。谢谢! - Aleks

3

首先尝试清除apt仓库并删除任何损坏的软件包:

sudo apt-get update
sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove

如果系统发现有损坏的软件包,请强制将它们移除(将 package_name 替换为你自己的软件包名称):
sudo dpkg --remove -force --force-remove-reinstreq package_name

然后重新安装任何缺失的软件包。


0

这里有一个很好的例子,关于博客

以下命令将解决你的问题。它帮助我安装了rmagick

sudo apt-get install libdjvulibre-dev libjpeg-dev libtiff-dev libwmf-dev libmagickcore-dev libmagickwand-dev libmagick++-dev

在所有上述的解决方案都失败之后,我只是通过谷歌搜索找到了上面的博客。它完美地解决了我的问题。 - Sumit Munot
也许你安装的是其他版本的Ubuntu,或者在此期间Ubuntu已将libmagickwand-dev添加到13.10存储库中。 - Иван Бишевац
你的Ubuntu版本是哪个? - Иван Бишевац
Ubuntu 版本 13.04... :) - Sumit Munot

0

这个对我起作用了:

  1. sudo apt-get install libcairo2=1.14.6-1 --reinstall
  2. sudo apt-get install libmagickwand-dev
  3. sudo gem install rmagick

0

你只需要安装:

sudo apt-get install libmagickwand-dev

这还不够,在Ubuntu 12.04上至少如此。在我安装imagemagick之前,它一直失败。 - Steve Upstill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接