【问题标题】:RMagick complaining about libMagickCore.5.dylib not found in OSXRMagick 抱怨在 OSX 中找不到 libMagickCore.5.dylib
【发布时间】:2013-10-03 04:06:01
【问题描述】:

在运行brew upgrade imagemagick 之后,当我运行rails s 时,我会得到

/Users/tomi/.rvm/gems/ruby-2.0.0-p247@ezaaa/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require': dlopen(/Users/tomi/.rvm/gems/ruby-2.0.0-p247@ezaaa/gems/rmagick-2.13.2/lib/RMagick2.bundle, 9): Library not loaded: /usr/local/lib/libMagickCore.5.dylib (LoadError)
  Referenced from: /Users/tomi/.rvm/gems/ruby-2.0.0-p247@ezaaa/gems/rmagick-2.13.2/lib/RMagick2.bundle
  Reason: image not found - /Users/tomi/.rvm/gems/ruby-2.0.0-p247@ezaaa/gems/rmagick-2.13.2/lib/RMagick2.bundle

我正在使用带有 RMagick 的 Carrierwave gem,操作系统是 OSX Moutain Lion

【问题讨论】:

  • brew upgrade imagemagick 出轨时,通常只是意味着您的 rmagick gem 也必须升级到新版本。

标签: ruby-on-rails imagemagick carrierwave homebrew


【解决方案1】:

这对我有帮助:

gem pristine rmagick

感谢https://github.com/mroth/lolcommits/issues/9#issuecomment-5153570

【讨论】:

  • 可能是。请注意:gem pristine XXXX 用于撤销开发人员对本地安装的 gem 所做的任何更改。例如。如果您在调试本地安装的 gem 并且忘记删除 binding.pry
  • 谢谢,在此之后解决问题 :)
【解决方案2】:

感谢找到不相关的答案here 我设法通过以下方式解决此问题:

1/在系统中搜索这个lib

sudo find / -name "libMagickCore.5.dylib" -print

我在/usr/local/Cellar/imagemagick/6.7.7-6/lib/libMagickCore.5.dylib找到了我的

2/ 将此库链接到所需路径

ln /usr/local/Cellar/imagemagick/6.7.7-6/lib/libMagickCore.5.dylib /usr/local/lib/libMagickCore.5.dylib

【讨论】:

  • 为 libltdl.7.dylib ln /usr/local/Cellar/libtool/2.4.2/lib/libltdl.7.dylib /usr/local/lib/libltdl.7.dylib修复了类似问题
【解决方案3】:

其他人现在正在努力解决这个问题(2017 年 1 月) - RMagick 2.15.4 无法使用 ImageMagick 7.0.x 构建

首先,请这样做:

brew uninstall ImageMagick
gem uninstall rmagick

其次,请参阅https://github.com/rmagick/rmagick/issues/256 并阅读 hristozov 的答案,即:

brew rm imagemagick
cd "$(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/"
git checkout 6f014f2b7f1f9e618fd5c0ae9c93befea671f8be imagemagick.rb
brew install imagemagick
brew pin imagemagick
git reset --hard

这将强制自制软件使用 /usr/local/Cellar/imagemagick/6.9.7-3

第三,

gem install rmagick

【讨论】:

  • 是的。 2017 年 1 月,我为此苦苦挣扎。谢谢。它奏效了。
  • 是的,这也对我有用。然而,正确的步骤应该是: 1. brew uninstall ImageMagick 2. gem uninstall rmagick(所有版本) 3. 4. gem install rmagick 为我工作
  • @AndreaSalicetti 谢谢我已将您的 cmets 纳入答案
  • 好东西@PeteW!这是发布一天后唯一对我有用的东西
【解决方案4】:

1 brew 卸载 ImageMagick

2 brew install ImageMagick

3 gem 卸载 rmagick (所有版本)

4 gem 安装 rmagick

为我工作

【讨论】:

  • 这对我有用。这似乎是一个比 sudo 符号链接一些库文件更合适的解决方案。
  • 完美,这在 2021 年使用 Rails 5 对我有用,所以仍然适用。干净安装所有内容的最简单解决方案
【解决方案5】:

非常感谢!我遇到了同样的问题:

$ perl -le 'use Image::Magick'

无法加载 '/Library/Perl/5.16/darwin-thread-multi-2level/auto/Image/Magick/Magick.bundle' 对于模块 Image::Magick: dlopen(/Library/Perl/5.16/darwin-thread-multi-2level/auto/Image/Magick/Magick.bundle, 1): 库未加载:/usr/local/lib/libMagickCore-6.Q16.1.dylib
参考自: /Library/Perl/5.16/darwin-thread-multi-2level/auto/Image/Magick/Magick.bundle 原因:找不到图片 /System/Library/Perl/5.16/darwin-thread-multi-2level/DynaLoader.pm 第 194 行。在 -e 第 1 行。在 -e 第 1 行的要求中编译失败。 BEGIN failed——编译在 -e 第 1 行中止。 &Image::Magick::constant 未定义。所需的 ImageMagick 库未安装或未正确安装。结尾 failed--呼叫队列在 -e line 1 中止。

之后:

$ sudo find / -name "libMagickCore-6.Q16.1.dylib" -print

/usr/local/Cellar/imagemagick/6.8.7-7/lib/libMagickCore-6.Q16.1.dylib

我创建了一个符号链接:

$ ln -s /usr/local/Cellar/imagemagick/6.8.7-7/lib/libMagickCore-6.Q16.1.dylib /usr/local/lib/libMagickCore-6.Q16.1.dylib

并删除并安装了所有 imagemagick 依赖项:

$ brew install perlmagick

==> 为 perlmagick 安装依赖项:libpng、imagemagick

现在一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-28
    • 2016-07-08
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多