Текущая версия гема rmagick (2.13.1) не работает с текущей версией ImageMagick (6.6.4) - PullRequest
2 голосов
/ 09 октября 2010

Я работаю на OSX Snow Leopard, хотя думаю, что это не проблема для конкретной платформы. Проблема в том, что я потратил впустую часы своей жизни, пытаясь заставить gem install rmagick работать, и я надеюсь спасти следующего человека от этого горя. Я считаю, что основная проблема в заголовке обобщена.

Вопросы:

  1. Может ли кто-нибудь подтвердить, что Rmagick 2.13.1 не работает с ImageMagick 6.6.4?
  2. Как лучше всего установить Rmagick на Snow Leopard?
  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

Ответы [ 3 ]

1 голос
/ 10 октября 2010

По сути, ответ, действительно, кажется, что вам нужна более старая версия 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.

Ошибки, которые я получал с помощью ImageMagick, были решены для меня путем удаления / usr / local / lib / libfreetype * и переустановки ImageMagick.Я также произвел чистку и переустановил MacPorts, но я не знаю, что это было необходимо.

Вот точные шаги, которые я предпринял, чтобы заставить это работать, настолько, насколько я могу восстановить их.

  1. Очистить и переустановить MacPorts (см. Приложение к вопросу выше).
  2. Удалить / usr / local / lib / libfreetype *
  3. Порт sudo -v установить freetype + байт-код
  4. sudo port -v install librsvg
  5. Я этого не делал, но некоторые могут захотеть: sudo port -v установить 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-what.txt, потому что они все испортили.
  10. экспорт CPPFLAGS = -I / usr / local / include
  11. export LDFLAGS = -L / usr / local / lib
  12. . / configure --prefix = / usr / local --disable-static --with-modules --with-perl --without-magick-plus-plus -with-квантовая глубина = 8 --disable-openmp --with-gs-font-dir = / usr / local / share / ghostscript / fonts
  13. make
  14. sudo make install
  15. gem install rmagick

Фу!Обратите внимание, что шаги 3-14, вероятно, можно заменить на это: http://github.com/masterkain/ImageMagick-sl

1 голос
/ 21 июля 2011

Я также застрял, пытаясь установить более раннюю версию ImageMagick, но я пытаюсь сделать это через Homebrew. Однако по пути я обнаружил, как устанавливать более старые пакеты через MacPorts, и это сработало для меня (хотя мне пришлось отказаться от MacPorts по другим причинам).

Инструкции по переходу на более старую версию порта находятся здесь: https://trac.macports.org/wiki/howto/InstallingOlderPort

1 голос
/ 10 октября 2010

RMagick - это ... интересная библиотека.Если это вообще возможно, избегайте его использования.Если вы просто изменяете размеры изображений и других базовых вещей, посмотрите на минимагику.Основная проблема с RMagick связана с использованием памяти и утечками, которые обычно не проявляются при разработке, но при работе они становятся ужасно быстрыми.более сложная работа, на самом деле может быть предпочтительнее использовать вместо этого Python / PIL (обернутый Ruby - я использую это, чтобы попасть в OpenCV, например).Зависит от вашего варианта использования.

Если вам действительно нужен RMagick, то Homebrew может работать лучше, чем порты.Я парень из Linux, где этот материал имеет тенденцию к Just Work, и лучший способ правильно настроить ImageMagick вне менеджеров пакетов - это создать его из исходного кода.Не уверен, насколько это практично для OSX, но, возможно, стоит попробовать, если ничего не поможет.

...