Ошибка пути ImageMagick в Sierra (бета)

Я пытаюсь установить водяной знак в app app. Для этого я следую блогу Ray, и я установил ImageMagick, используя двоичный выпуск из здесь. Я также добавил /bin и /lib в своих путях с помощью sudo nano /etc/paths, поэтому команда преобразования работает.

Заявление о проблемах: когда я использую преобразовать команду из учебника, я получаю следующую ошибку

dyld: Library not loaded: /ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib
  Referenced from: /Users/Username/Library/ImageMagick-7.0.1/bin/convert
  Reason: image not found
Abort trap: 6

Несмотря на то, что на изображении есть ошибка, "изображение не найдено". Сообщество идей?

Ответ 1

У меня была та же проблема. Что сработало для меня, было удаление из $PATH проблемной предыдущей установки, а затем переустановка:

brew update && brew upgrade
brew remove imagemagick
brew install imagemagick

Тогда, когда я побежал:

which convert

Наконец-то я получил версию brew:

/usr/local/bin/convert

И когда я запустил команду из учебника:

convert [email protected] -fill white -font Times-Bold -pointsize 18 -gravity south -annotate 0 "Hello World" test.png

Я получил изображение Hello World.

Ответ 2

UPDATE

Я проверил страницу, из которой вы получили свой пакет, и похоже, что моя гипотеза верна - вам не хватает переменной пути MAGICK_HOME. К счастью, это легко исправить.

Вам нужно получить абсолютный путь к каталогу, где находится ImageMagick. В крайнем случае вы можете искать его повсюду - запустите это из командной строки:

find / -type d -name "ImageMagick-7.0.3" 2>/dev/null

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

В качестве альтернативы, если вы выполните команду

which convert

он должен указать полный путь к исполняемому файлу convert, который должен находиться в подкаталоге bin установки ImageMagick.

Предположим, что он говорит, что каталог

/Users/lserni/Desktop/test/ImageMagick-7.0.3

то перед использованием ImageMagick в терминале вам необходимо выпустить следующие команды:

export HOME=/Users/lserni/Desktop/test
export MAGICK_HOME="$HOME/ImageMagick-7.0.3"
export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib/"

Теперь вы можете попробовать ImageMagick:

convert logo: logo.gif
identify logo.gif

Он должен дать что-то вроде

logo.gif GIF 640x480 640x480+0+0 8-bit sRGB 256c 28.6KB ...

ОРИГИНАЛЬНЫЙ ОТВЕТ

dyld: библиотека не загружена:/ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib  Причина: изображение не найдено

Существует несколько возможных причин. Тот, который кажется мне наиболее вероятным, заключается в том, что на самом деле библиотека не "там" - "там", что означает каталог "ImageMagick-7.0.1" в корневом томе. Библиотека может находиться в /usr или /lib или /opt, но вышеприведенная ошибка говорит о том, что она ищет ее в /ImageMagick-7.0.1.

Попробуйте ввести это в терминале для запроса этого пути:

ls -la /ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib

Я нашел ссылку, предполагающую, что вы можете перенаправить ldpath из исполняемого файла, если он содержит неправильный путь, , но я еще не пробовал его:

install_name_tool -change /ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib /usr/local/lib/libMagickCore-7.Q16HDRI.0.dylib /usr/local/bin/NameOfImageMagickBinaryYou'ReCalling

(двоичный файл, вероятно, /usr/local/bin/convert)

... и, возможно, есть другие библиотеки и другие исполняемые файлы IM с той же проблемой.

Другая возможность заключается в том, что библиотека есть, но она пытается загрузить, в свою очередь, другие библиотеки, которых там нет. libPNG, JPEGlib, libTIFF и т.д. являются вероятными кандидатами. Хотя вы можете вникать в вопрос с помощью таких инструментов, как strace, возможно, лучше всего проверить установку с самого начала.

Наконец, у вас может быть ошибка разрешения либо в dylib, либо на пути, ведущем к этому dylib. Это может произойти, если вы устанавливаете его как root (или установка выполняется с правами администратора), каталоги библиотеки создаются с более безопасными разрешениями (например, 750 вместо 755), а затем вы запускаете приложение в качестве другого и/или менее привилегированного пользователя/группа.

Если вы установили ImageMagick через Homebrew, проверьте также настроенные пути HB. Ваши симптомы очень напоминают мне, что произойдет, если установка script выполняется с --prefix= вместо --prefix=/usr/local.

Ответ 3

IMHO, самый простой способ установить, настроить, удалить ImageMagick, а многие, многие другие пакеты на OS X - использовать homebrew.

Шаг 1

Перейдите на веб-сайт homebrew и скопируйте однострочный вкладыш и вставьте его в свой терминал и запустите его.

Шаг 2

Теперь решите, какой пакет вы хотите искать и устанавливать - ImageMagick, Redis, pandoc, gawk и т.д. и найдите пакет с командой, подобной одной из следующих:

brew search magick
brew search redis
brew search gawk

Шаг 3

Теперь проверьте, какие параметры вы хотите использовать для ImageMagick:

brew options imagemagick

Результат вывода

--with-fftw
    Compile with FFTW support
--with-fontconfig
    Build with fontconfig support
--with-ghostscript
    Build with ghostscript support
--with-hdri
    Compile with HDRI support
--with-liblqr
    Build with liblqr support
--with-librsvg
    Build with librsvg support
--with-libwmf
    Build with libwmf support
--with-little-cms
    Build with little-cms support
--with-little-cms2
    Build with little-cms2 support
--with-opencl
    Compile with OpenCL support
--with-openexr
    Build with openexr support
--with-openjpeg
    Build with openjpeg support
--with-openmp
    Compile with OpenMP support
--with-pango
    Build with pango support
--with-perl
    Compile with PerlMagick
--with-quantum-depth-16
    Compile with a quantum depth of 16 bit
--with-quantum-depth-32
    Compile with a quantum depth of 32 bit
--with-quantum-depth-8
    Compile with a quantum depth of 8 bit
--with-webp
    Build with webp support
--with-x11
    Build with x11 support
--with-zero-configuration
    Disables depending on XML configuration files
--without-freetype
    Build without freetype support
--without-jpeg
    Build without jpeg support
--without-libpng
    Build without libpng support
--without-libtiff
    Build without libtiff support
--without-magick-plus-plus
    disable build/install of Magick++
--without-modules
    Disable support for dynamically loadable modules
--without-threads
    Disable threads support
--HEAD
    Install HEAD version

Шаг 4

Установите с выбранными параметрами:

brew install imagemagick --with-fftw --with-openmp --with-pango

И тогда все хорошо идти.

Обновить и обновить пакеты

Если вы хотите обновить свою копию homebrew и обновить все свои пакеты, используйте:

brew update && brew upgrade

Удалить пакеты

Если вы хотите удалить ImageMagick, используйте:

brew rm imagemagick

Повторно установите пакеты с различными параметрами

Если вы хотите переустановить ImageMagick с помощью квантовой глубины 32 (Q32), например, используйте:

brew reinstall imagemagick --with-quantum-depth-32

Устранение неполадок

Если у вас есть проблемы с homebrew, просто спросите хорошего врача, что не так, и вы получите отчет обо всем, что нехорошо:

brew doctor

Аккуратные пакеты

Некоторые из моих любимых пакетов:

ack, ansiweather, arpack, astyle, atk, atkmm, autoconf, basex, bash, boost, c-ares, cairo, cairomm, cimg, cmake, coreutils, cpanminus, curl, dbus, dcraw, doxygen, own, epstool, exact-image, exiftool, exiv2, faac, feh, ffmpeg, fftw, findutils, flac, fltk, fontconfig, fortune, freeimage, freetype, fswatch, gawk, gcc, gd, gdb, gdbm, gdk-pixbuf, geoip, gettext, ghostscript, giflib, gifsicle, gl2ps, glib, glibmm, glpk, gmp, gnu-sed, gnuplot, gnutls, gobject-introspection, graphicsmagick, grep, gsettings-desktop-schemas, gtk + 3, harfbuzz, hdf5, hicolor -icon-theme, hiredis, icu4c, ilmbase, imagemagick, imlib2, isl, jasper, jbig2dec, jhead, jpeg, jpeg-turbo, jq, lame, leptonica, lftp, libagg, libbtbb, libcroco, libepoxy, libevent, libexif, libffi, libgcrypt, libgpg-error, libgsf, libmpc, libogg, libpng, librsvg, libsigС++, libsvg, libsvg-cairo, libtasn1, libtiff, libtool, libusb, libusb-compat, libvo-aacenc, libvorbis, libxml2, libyaml, lighttpd, little -cms, little-cms2, llvm, lua, lynx, lz4, mad, matplotlib, metis, mpfr, nanomsg, net-snmp, netpbm, nettle, ngrep, nmap, node, numpy, octave, oniguruma, opencv3, openexr, openjpeg, openjpeg21, openssl, orc, p7zip, pandoc, pango, pangomm, parallel, pcre, pdfgrep, perl, perlmagick, php56, php56-amqp, php56-imagick, pixman, pkg-config, platypus, plotutils, pngcheck, pngcrush, pngquant, poppler, popt, potrace, pstoedit, py2cairo, pygobject3, pyqt, pyqt5, python, python3, qhull, qrupdate, qscintilla2, qt, qt5, rabbitmq-c, readline, redis, rename, rockdb, ruby, sane-backends, sdl, shared-mime-info, sip, smartmontools, snake, sox, sqlite, sqliteman, suite-sparse, suite-sparse421, svg2png, swig, szip, tag, tbb, tesseract, tmux, transfig, tree, ufraw, unixodbc, utf8proc, veclibfort, vips, webkit2png, webp, wget, wirehark, x264, xmlstarlet, xvid, xz, youtube-dl, bar