安装Brew的ImageMagick并修复其Symlink


15

假设您通过以下方式安装了Imagemagick

brew install imagemagick

但它不会进入您的PATH。例如,我运行失败

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

基本上,您只需使用所需的选项从Terminal运行它。从您的问题尚不清楚从Terminal运行是否失败,是否不知道如何使用它来完成特定任务或是否有其他问题。因此,请通过编辑问题进行澄清,然后将其自动放入重新打开的队列中。
nohillside

1
请尝试type -a comparels -l /usr/local/bin/compare按照patrix建议。
2015年

1
我会给你列出一些可以尝试的东西。
2015年

1
也许现在有点用处了,但是这个简单的解决方案对我
有用

Answers:


12

依次尝试的事物列表(为了更好地格式化,我正在写一个答案而不是评论)。hash -r在每个步骤之后运行(假设您正在使用bash;请rehash改用zsh;或者您始终可以打开一个新的shell)。

  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'吗?
莱奥波尔德·赫兹(LéoLéopoldHertz)2015年

@Masi这不是最好的事情。convert是ImageMagick命令,所以我想这样做是安全的brew link --overwrite imagemagick。如果您过分谨慎,可以brew link --overwrite --dry-run imagemagick先查看覆盖文件列表,但是我认为这不是必需的。
2015年

顺便说一句,也许您安装了一些非Homebrew软件,它们在中提供了convert二进制文件/usr/local/bin?您可以运行convert --version以确保它实际上是ImageMagick convert吗?
2015年

1
@Masi刷新hash -r外壳程序已知的命令列表。它有助于自动完成和填充,所以为什么不呢?reset与您的shell环境无关,它只是重置终端并仅解决打印问题。
2015年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.