Щоб встановити ImageMagick Brew та виправити її Symlink


15

Припустимо, ви встановили 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

значить, щось не так у символіці.

Як ви можете вирішити помилку щодо symlink?


Що ви пробували? Де ти застряг? Чи знаєте ви, як використовувати командний рядок? Ви читали сторінки керівництва 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і ми побачимо, що не так.


Ти правий! Існує деяка помилка в символіці. Дивіться моє оновлення.
Лео Леопольд Герц 준영

Я зробив rm '/ usr / local / bin / convert' і rm '/usr/local/share/man/man1/convert.1' ?
Лео Леопольд Герц 준영

@Masi Це не найкраще робити. convertє командою ImageMagick, тому я б сказав, що це безпечно просто робити brew link --overwrite imagemagick. Якщо ви хочете бути дуже обережними, ви можете brew link --overwrite --dry-run imagemagickспочатку переглянути список перезаписаних файлів, але я б сказав, що це не потрібно.
4ae1e1

До речі, можливо, ви встановили якесь не-домашнє програмне забезпечення, яке надало convertдвійковий код /usr/local/bin? Не могли б ви запуститись, convert --versionщоб переконатися, що це насправді ImageMagick convert?
4ae1e1

1
@Masi повторно оновлює hash -rсписок команд, відомих оболонці. Це допомагає з автозаповненням і т. Д., Чому б і ні. resetне має нічого спільного з середовищем вашої оболонки, він просто скидає термінал і не допомагає нічого, крім проблем із друком.
4ae1e1

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.