Чтобы установить Brew's ImageMagick и исправить его Symlink

14

Предположим, вы установили Imagemagick

brew install imagemagick

но это не попадает в ваш путь. Например, я бегу неудачно

compare

поскольку ImageMagick не в PATH: -bash: compare: command not found.

Команда ls -l /usr/local/bin/compareдает

ls: /usr/local/bin/compare: No such file or directory

Мой .bash_profile

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

# http://apple.stackexchange.com/a/53058/15504
export PATH=/usr/bin:/usr/local/bin:/opt/local/sbin:$PATH

Эхо $PATHдает

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin

что, кажется, хорошо, потому что /usr/local/bin/там.

ImageMagick в моей системе - ответы на 4ae1e1

Команда brew --prefixдает /usr/localтак хорошо.

Команда brew info imagemagickдает

imagemagick: stable 6.9.0-3 (bottled), HEAD
http://www.imagemagick.org
/usr/local/Cellar/imagemagick/6.9.0-3 (1440 files, 22M)
  Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/imagemagick.rb
==> Dependencies
Build: xz ✔, pkg-config 
Required: libtool ✔, xz 
Recommended: jpeg ✔, libpng ✔, freetype 
Optional: fontconfig ✔, libtiff ✔, little-cms ✘, little-cms2 ✘, libwmf ✘, librsvg ✘, liblqr ✘, openexr ✘, ghostscript ✘, webp ✘, fftw 
==> Options
--enable-hdri
        Compile with HDRI support
--with-fftw
        Compile with FFTW support
--with-fontconfig
        Build with fontconfig support
--with-ghostscript
        Build with ghostscript support
--with-jp2
        Compile with Jpeg2000 support
--with-liblqr
        Build with liblqr support
--with-librsvg
        Build with librsvg support
--with-libtiff
        Build with libtiff support
--with-libwmf
        Build with libwmf support
--with-little-cms
        Build with little-cms support
--with-little-cms2
        Build with little-cms2 support
--with-openexr
        Build with openexr support
--with-perl
        enable build/install of 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
--without-freetype
        Build without freetype support
--without-jpeg
        Build without jpeg support
--without-libpng
        Build without libpng support
--without-magick-plus-plus
        disable build/install of Magick++
--HEAD
        Install HEAD version

что вроде бы нормально.

Я запускаю команду brew link imagemagickи получаю

Linking /usr/local/Cellar/imagemagick/6.9.0-3... 
Error: Could not symlink bin/convert
Target /usr/local/bin/convert
already exists. You may want to remove it:
  rm '/usr/local/bin/convert'

To force the link and overwrite all conflicting files:
  brew link --overwrite imagemagick

To list all files that would be deleted:
  brew link --overwrite --dry-run imagemagick

Это кажется странным. Как вы можете решить эту проблему?

Я запускаю команду brew reinstall imagemagickи получаю

==> Reinstalling imagemagick
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/imagemagick
Already downloaded: /Library/Caches/Homebrew/imagemagick-6.9.0-3.yosemite.bottle.tar.gz
==> Pouring imagemagick-6.9.0-3.yosemite.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/convert
Target /usr/local/bin/convert
already exists. You may want to remove it:
  rm '/usr/local/bin/convert'

To force the link and overwrite all conflicting files:
  brew link --overwrite imagemagick

To list all files that would be deleted:
  brew link --overwrite --dry-run imagemagick

Possible conflicting files are:
/usr/local/bin/convert
/usr/local/share/man/man1/convert.1
==> Summary
🍺  /usr/local/Cellar/imagemagick/6.9.0-3: 1440 files, 22M

так что-то не так в символических ссылках.

Как вы можете решить ошибку о символической ссылке?

Лео Леопольд Герц 준영
источник
Что вы пробовали? Где вы застряли? Вы знаете, как использовать командную строку? Вы читали справочные страницы ImageMagick? Вы не дали нам много вопросов в этом вопросе, поэтому трудно понять, как вам помочь. Мы ожидаем, что вы приложите серьезные усилия самостоятельно, прежде чем спросить здесь, и покажете нам в вопросе, что вы пробовали и что случилось.
DW
В основном вы просто запускаете его из терминала с нужными вам опциями. Из вашего вопроса неясно, происходит ли сбой при запуске из Терминала, не знаете, как его использовать для выполнения определенной задачи или у вас есть другая проблема. Поэтому, пожалуйста, уточните, отредактировав свой вопрос, и он автоматически будет помещен в очередь на повторное открытие.
Nohillside
1
Пожалуйста, попробуйте type -a compareи, ls -l /usr/local/bin/compareкак предложил Патрикс.
4ae1e1
1
Я дам вам список вещей, чтобы попробовать в ближайшее время.
4ae1e1
1
может быть, теперь это немного бесполезно, но это простое решение сработало для меня: stackoverflow.com/questions/13998161/…
jjrr

Ответы:

12

Список вещей, чтобы попробовать, по порядку (я пишу ответ вместо комментария для лучшего форматирования). Запускайте hash -rпосле каждого шага (при условии, что вы находитесь в bash; делайте rehashвместо этого для zsh; или вы всегда можете открыть новую оболочку).

  1. Запустите brew --prefixи посмотрите, если выход /usr/local. Если нет, ваш brewне установлен в /usr/local! Добавьте $(brew --prefix)/binк вам $PATH.

  2. Запустите brew info imagemagickи убедитесь, что он действительно установлен; возможно у вас была ошибка во время установки, и она просто не была успешно установлена.

  3. Запустите brew link imagemagickсимволическую ссылку на /usr/local/bin; возможно, исполняемые файлы не были правильно символизированы (по какой-то причине);

  4. Запустите brew reinstall imagemagickдля переустановки.

  5. Если это все еще не работает, покажите нам вывод, brew list imagemagickи мы увидим, что не так.

4ae1e1
источник
Вы правы! В символической ссылке есть какая-то ошибка. Смотрите мое обновление.
Лео Леопольд Герц 준영
Я сделал rm '/ usr / local / bin / convert' и rm '/usr/local/share/man/man1/convert.1' ?
Лео Леопольд Герц 준영
@ Маси Это не лучшая вещь. convertэто команда ImageMagick, поэтому я бы сказал, что это безопасно brew link --overwrite imagemagick. Если вы хотите быть чрезмерно осторожным, вы можете brew link --overwrite --dry-run imagemagickсначала просмотреть список перезаписанных файлов, но я бы сказал, что в этом нет необходимости.
4ae1e1
Кстати, может быть, вы установили какое-то не-Homebrew программное обеспечение, которое предоставляло convertбинарный файл /usr/local/bin? Не могли бы вы бежать, convert --versionчтобы убедиться, что это на самом деле ImageMagick convert?
4ae1e1
1
@Masi пересматривает hash -rсписок команд, известных оболочке. Это помогает с автозаполнением и прочее, так почему бы и нет. resetимеет мало общего с вашей оболочкой, он просто сбрасывает терминал и помогает только с проблемами печати.
4ae1e1
0

Предложение jjrr в комментариях, где вы должны следовать инструкциям тоже

brew doctor
Лео Леопольд Герц 준영
источник