ImageMagick на Mac OSX Snow Leopard. Есть ли способ заставить его скомпилировать и запустить? - PullRequest
6 голосов
/ 23 марта 2010

Кажется, у меня больше проблем с запуском стандартных вещей Unix на Snow Leopard, чем с любой другой платформой, включая Windows cygwin

Последние пару дней я пытался заставить ImageMagick работать на Snow Leopard.

Самый очевидный способ, Mac Ports, не работает:

tppllc-Mac-Pro:ImageMagick-sl swirsky$ sudo port install imagemagick
--->  Computing dependencies for p5-locale-gettext
--->  Configuring p5-locale-gettext
Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_perl_p5-locale-gettext/work/gettext-1.05" && /opt/local/bin/perl Makefile.PL INSTALLDIRS=vendor " returned error 2
Command output: checking for gettext... no
checking for gettext in -I/opt/local/include -arch i386 -L/opt/local/lib -lintl...gettext function not found. Please install libintl at Makefile.PL line 18.
 no

Error: Unable to upgrade port: 1
Error: Unable to execute port: upgrade xorg-libXt failed
Before reporting a bug, first run the command again with the -d flag to get complete output.
tppllc-Mac-Pro:ImageMagick-sl swirsky$ 

Не желая тратить еще два дня, выясняя, почему в моем libintl нет функции «gettext», я попробовал другой маршрут: скрипт, упомянутый здесь: http://github.com/masterkain/ImageMagick-sl

Этот скрипт загружает и устанавливает ImageMagic независимо от проблем MacPorts

tppllc-Mac-Pro:ImageMagick-sl swirsky$ /usr/local/bin/convert
dyld: Library not loaded: /opt/local/lib/libiconv.2.dylib
  Referenced from: /opt/local/lib/libfontconfig.1.dylib
  Reason: Incompatible library version: libfontconfig.1.dylib requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0
Trace/BPT trap

Он загружает все и прекрасно компилируется, но не удается, когда я пытаюсь его запустить, с сообщением выше.

Так что теперь я в двух шагах от ImageMagick, пытаясь установить более новую версию libiconv на мою машину.

Я скачал последнюю версию libiconv, скомпилировал и собрал ее. Я помещаю полученную библиотеку в / opt / local / lib, и все равно получаю то же сообщение об ошибке:

tppllc-Mac-Pro:.libs swirsky$ sudo mv libiconv.2.dylib /opt/local/lib/libiconv.2.dylib
tppllc-Mac-Pro:.libs swirsky$ convert
dyld: Library not loaded: /opt/local/lib/libiconv.2.dylib
  Referenced from: /opt/local/lib/libfontconfig.1.dylib
  Reason: Incompatible library version: libfontconfig.1.dylib requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0
Trace/BPT trap

Теперь вот кое-что интересное. Сообщение об ошибке показывает, что оно выглядит в /opt/local/lib/libiconv.2.dylib.

otools -L показывает, что это реализует 8.0.0:

tppllc-Mac-Pro:.libs swirsky$ otool -L /opt/local/lib/libiconv.2.dylib
/opt/local/lib/libiconv.2.dylib:
    /usr/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.0.0)
tppllc-Mac-Pro:.libs swirsky$ 

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

Так что, хотя у меня есть библиотека, которая предоставляет 8.0.0, она рассматривается как 7.0.0! Есть идеи, почему это произойдет?

Итак, вот мой вопрос: возможно ли заставить ImageMagick работать на OSX Snow Leopard? Существуют ли какие-либо бинарные дистрибутивы со встроенными статическими библиотеками, поэтому мне не нужно беспокоиться об этой проблеме

Ответы [ 8 ]

5 голосов
/ 27 марта 2012

Это сработало для меня:

sudo brew install imagemagick

3 голосов
/ 04 августа 2010

Вы также можете попробовать скрипт установки ImageMagick, расположенный здесь: http://github.com/masterkain/ImageMagick-sl

Это мне очень помогло. Может потребоваться изменить некоторые версии библиотеки внутри скрипта.

1 голос
/ 06 апреля 2010

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

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

Если необходимо установить DYLD_ *, используйте более вменяемый DYLD_FALLBACK_LIBRARY_PATH. Который будет пытаться сначала загрузить явно связанные библиотеки, а затем выполнить откат к заявленным пользователем.

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

0 голосов
/ 26 мая 2011

Странно. Я очень доволен моими macports - и все скомпилировано без ошибок. Я могу только совет - использовать MacPort.
ImageMagick @ 6.6.9-9_0 + graphviz + hdri + jpeg2 + mpeg + perl + q16 + rsvg + wmf (активный)

0 голосов
/ 01 февраля 2011

У меня была та же проблема, и я решил ее, удалив и переустановив libiconv с помощью Macports. Тогда все работает нормально (у меня также есть / opt / local / lib / в качестве первой записи в моей переменной DYLD_LIBRARY_PATH)

0 голосов
/ 26 марта 2010

Кажется, что динамический компоновщик тянет в систему libiconv.2.dylib (с версией совместимости 7.0.0). Не видя всего процесса сборки, трудно точно понять, почему это так, но я с подозрением отношусь к вашей сборке libiconv; обратите внимание, что при следующей ошибке:

tppllc-Mac-Pro:.libs swirsky$ otool -L /opt/local/lib/libiconv.2.dylib
/opt/local/lib/libiconv.2.dylib:
    /usr/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.0.0)

ваш libiconv.2.dylib, кажется, считает, что его путь установки - /usr/local/lib, а не /opt/local/lib. Вероятно, поэтому динамический компоновщик не находит его; он ищет его в /usr/local/lib, не находит его и использует системную библиотеку в /usr/lib. Попробуйте установить путь установки для libiconv.2.dylib, чтобы команды загрузки указывали компоновщику искать его в /opt/local/lib, и это может решить проблему.

0 голосов
/ 24 марта 2010

Мне наконец-то удалось сделать мою установку "macports" достаточно последовательной, чтобы установить и запустить imagemagick.Мне пришлось вручную удалить мои / opt / local / directores, где находились файлы, и очистить некоторые другие зависимости.

0 голосов
/ 23 марта 2010

Мой гугл обнаружил несколько обращений, и у первого или второго была ссылка на двоичный файл .

...