Para instalar o ImageMagick do Brew e corrigir o Symlink

15

Suponha que você tenha instalado o Imagemagick

brew install imagemagick

mas não entra no seu caminho. Por exemplo, eu corro sem êxito

compare

desde imagemagick não está na PATH: -bash: compare: command not found.

O comando ls -l /usr/local/bin/comparefornece

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

Meu .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

Ecoar $PATH

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

o que parece estar bem porque /usr/local/bin/existe.

ImageMagick no meu sistema - respostas para a resposta de 4ae1e1

O comando brew --prefix/usr/localassim ok.

O comando brew info imagemagickfornece

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

o que parece estar bem.

Eu executo o comando brew link imagemagicke obtenho

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

Isso parece ser estranho. Como você pode resolver esse problema?

Eu executo o comando brew reinstall imagemagicke obtenho

==> 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

então algo errado no link simbólico.

Como você pode resolver o erro sobre o link simbólico?

Léo Léopold Hertz 준영
fonte
O que você tentou? Onde você ficou preso? Você sabe como usar a linha de comando? Você leu as páginas de manual do ImageMagick? Você não nos deu muito em que trabalhar, por isso é difícil saber como ajudá-lo. Esperamos que você faça um esforço sério por conta própria antes de perguntar aqui e nos mostre na pergunta o que você tentou e o que aconteceu.
DW
Basicamente, basta executá-lo no Terminal com as opções desejadas. Na sua pergunta, não está claro se a execução no Terminal falha, se você não sabe como usá-lo para realizar uma tarefa específica ou se tem um problema diferente. Portanto, esclareça que, editando sua pergunta, ela será automaticamente colocada na fila de reabertura.
nohillside
1
Por favor, tente type -a comparee ls -l /usr/local/bin/comparecomo patrix sugeriu.
4ae1e1
1
Vou lhe dar uma lista de coisas para tentar em breve.
precisa saber é
1
talvez seja um pouco inútil agora, mas esta solução simples funcionou para mim: stackoverflow.com/questions/13998161/...
jjrr

Respostas:

12

Uma lista de coisas para tentar, em ordem (estou escrevendo uma resposta em vez de um comentário para uma melhor formatação). Execute hash -rapós cada etapa (supondo que você esteja no bash; em rehashvez disso, faça o zsh; ou você sempre pode abrir um novo shell).

  1. Execute brew --prefixe veja se a saída é /usr/local. Caso contrário, o seu brewnão está instalado /usr/local! Adicione $(brew --prefix)/bina você $PATH.

  2. Execute brew info imagemagicke verifique se ele está realmente instalado; talvez você tenha tido um erro durante a instalação e ele simplesmente não foi instalado com sucesso.

  3. Execute o brew link imagemagicklink simbólico para /usr/local/bin; talvez os executáveis ​​não tenham sido vinculados corretamente (por algum motivo);

  4. Execute brew reinstall imagemagickpara reinstalar.

  5. Se ainda assim não funcionar, mostre-nos a saída brew list imagemagicke veremos o que está errado.

4ae1e1
fonte
Você está certo! Há algum erro no link simbólico. Veja minha atualização.
Léo Léopold Hertz ·
Eu fiz rm '/ usr / local / bin / convert' e rm '/usr/local/share/man/man1/convert.1' ?
Léo Léopold Hertz ·
@ Masi Essa não é a melhor coisa a fazer. converté um comando ImageMagick, então eu diria que é seguro fazer isso brew link --overwrite imagemagick. Se você deseja ser excessivamente cauteloso, pode brew link --overwrite --dry-run imagemagickdar uma olhada na lista de arquivos substituídos primeiro, mas eu diria que isso não é necessário.
4ae1e1
A propósito, talvez você tenha instalado algum software não-Homebrew que forneceu um convertbinário /usr/local/bin? Você poderia correr convert --versionpara ter certeza de que é realmente o ImageMagick convert?
precisa saber é
1
@Masi hash -rreformula a lista de comandos conhecidos pelo shell. Ajuda com o preenchimento automático e outras coisas, então por que não? resettem pouco a ver com o ambiente do shell, apenas redefine o terminal e ajuda apenas com problemas de impressão.
precisa saber é
0

proposta de jjrr nos comentários, onde você também precisa seguir as instruções

brew doctor
Léo Léopold Hertz 준영
fonte