【问题标题】:Current version of the rmagick gem (2.13.1) doesn't work with current version of ImageMagick (6.6.4)当前版本的 rmagick gem (2.13.1) 不适用于当前版本的 ImageMagick (6.6.4)
【发布时间】:2011-04-23 06:40:47
【问题描述】:

我使用的是 OSX Snow Leopard,但我认为这可能不是特定于平台的问题。 问题是我浪费了我生命中的几个小时试图让gem install rmagick 工作,我希望能拯救下一个人的悲伤。 我相信核心问题已经在标题中总结出来了。

问题:

  1. 谁能确认Rmagick 2.13.1 不适用于ImageMagick 6.6.4?
  2. 在 Snow Leopard 上安装 Rmagick 的最佳解决方案是什么?
  3. 应该使用MacPorts 来安装ImageMagick 吗? (我不知道如何告诉 macports 使用旧版本的 ImageMagick。)

最后:

现在让 ImageMagick 工作让我很满意,因为我尝试以各种方式安装各种版本,但它们相互干扰。 以下是清除和重新安装 macports 的说明(有必要吗?)但我不确定如何清理其他库以进行全新的 ImageMagick 安装。 例如,我目前在尝试运行 ImageMagick 时遇到以下错误

dyld: Library not loaded: /usr/local/lib/libfreetype.6.dylib
  Referenced from: /usr/local/bin/convert
  Reason: Incompatible library version: convert requires version 11.0.0 or later,
          but libfreetype.6.dylib provides version 10.0.0

也许只是在重新安装之前摆脱 /usr/local/lib/libfreetype* 就足够了(我会在 ImageMagick 工作时在这里确认)但是是否有更完整/确定的方法来重新安装特定版本ImageMagick 的?

附录:清除并重新安装MacPorts

【问题讨论】:

  • 我听到了很多围绕 OS X 的替代包管理器的嗡嗡声:Homebrew (mxcl.github.com/homebrew)。我最近换了这个,真的很好。
  • 感谢自制建议。它看起来做得很好。一个担心:默认情况下,它会从 git 获取最新版本的软件包吗?我担心这会引起更多的头痛,就像引发这个问题的那个一样。

标签: ruby-on-rails ruby image image-processing imagemagick


【解决方案1】:

RMagick 是一个……有趣的库。如果可能,请避免使用它。如果您只是调整图像大小和其他基本内容,请查看 minimagick。 RMagick 的主要问题源于内存使用和泄漏 - 通常在开发中并不明显,但在生产中它们很快就会变得丑陋。

如果可能的话,我的建议是寻找替代方案 - 如果你必须做更复杂的工作,实际上可能更可取的是使用 Python/PIL 代替(用 Ruby 包装 - 我用它来获取 OpenCV , 例如)。取决于您的用例。

如果你真的需要 RMagick,那么 Homebrew 可能比移植更好。我是一个 Linux 人,这些东西往往只是工作,在那里,在包管理器之外正确设置 ImageMagick 之类的东西的最终方法是从源代码构建它。不确定这在 OSX 上有多实用,但如果一切都失败了,它可能值得一试。

【讨论】:

  • 这是一个很好的答案。切换到 minimagick 对我来说可能是有意义的;我没有考虑过。我的印象是 Rmagick 是行业标准的东西。当性能很重要时,显然不是这样。再次感谢您的帮助和建议。我仍然希望我们能够为确实需要 Rmagick 的 Mac 用户找到一个明确的答案。
【解决方案2】:

从根本上说,答案似乎确实是您需要旧版本的 ImageMagick 才能使 Rmagick 工作(至少在 Snow Leopard 下)。

我已确认 ImageMagick 6.5.6-10 可与 Rmagick 2.13.1 一起使用。 (Rmagick 主页说它已经通过 ImageMagick 6.6.1-0 进行了测试。版本 6.6.1-0 似乎不可用,但可能可用的 6.6.1-10 也可以。)

MacPorts 的所有问题可能主要是红鲱鱼。不过,MacPorts 似乎没有办法安装以前版本的 ImageMagick,所以我从源代码安装了它。 HomeBrew 可能是更好的选择。

通过删除 /usr/local/lib/libfreetype* 并重新安装 ImageMagick,解决了我使用 ImageMagick 遇到的错误。 我还清除并重新安装了 MacPorts,但我不知道这是必要的。

这是我为使其正常工作所采取的确切步骤,尽我所能重建它们。

  1. 清除并重新安装 MacPorts(请参阅上述问题的附录)。
  2. 删除 /usr/local/lib/libfreetype*
  3. sudo port -v install freetype +bytecode
  4. sudo port -v install librsvg
  5. 我没有这样做,但有些人可能想要:sudo port -v install graphviz +gs +wmf +jbig +jpeg2 +lcms
  6. cd /usr/local/src
  7. curl 'ftp://ftp.imagemagick.org/pub/ImageMagick/legacy/ImageMagick-6.5.6-10.tar.gz' > ImageMagick-6.5.6-10.tar.gz(这可能也可以:ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.6.1-10.tar.gz
  8. tar xzvf ImageMagick-6.5.6-10.tar.gz
  9. cd 到那里,但不要按照 Install-whatever.txt 中的说明进行操作,因为它们都搞砸了。
  10. 导出 CPPFLAGS=-I/usr/local/include
  11. 导出 LDFLAGS=-L/usr/local/lib
  12. ./configure --prefix=/usr/local --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --disable -openmp --with-gs-font-dir=/usr/local/share/ghostscript/fonts
  13. 制作
  14. sudo make install
  15. gem 安装 rmagick

呸!请注意,步骤 3-14 可能会替换为:http://github.com/masterkain/ImageMagick-sl

【讨论】:

    【解决方案3】:

    我也一直在尝试安装早期版本的 ImageMagick,但我正在尝试通过 Homebrew 来安装。然而,一路走来,我发现了如何通过 MacPorts 安装较旧的软件包,并且它确实对我有用(尽管我不得不因为其他原因放弃 MacPorts)。

    迁移到旧版端口的说明如下: https://trac.macports.org/wiki/howto/InstallingOlderPort

    【讨论】:

      猜你喜欢
      • 2013-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-12
      • 2018-11-11
      • 2013-05-24
      • 2021-10-27
      • 2016-12-25
      相关资源
      最近更新 更多