Aby zainstalować Brew's ImageMagick i naprawić jego Symlink

15

Załóżmy, że zainstalowałeś Imagemagick przez

brew install imagemagick

ale nie wchodzi w twoją ŚCIEŻKĘ. Na przykład biegnę bezskutecznie

compare

od ImageMagick nie jest w PATH: -bash: compare: command not found.

Komenda ls -l /usr/local/bin/comparedaje

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

Mój plik .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

Echoing $PATHdaje

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

co wydaje się w porządku, ponieważ /usr/local/bin/tam.

ImageMagick w moim systemie - odpowiedzi na odpowiedź 4ae1e1

Polecenie brew --prefixdaje /usr/localtak dobrze.

Komenda brew info imagemagickdaje

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

co wydaje się być w porządku.

Wykonuję polecenie brew link imagemagicki rozumiem

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

To wydaje się dziwne. Jak możesz rozwiązać ten problem?

Wykonuję polecenie brew reinstall imagemagicki rozumiem

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

więc coś jest nie tak w symlinkowaniu.

Jak rozwiązać problem dotyczący dowiązania symbolicznego?

Léo Léopold Hertz 준영
źródło
Czego próbowałeś? Gdzie utknąłeś? Czy wiesz, jak korzystać z wiersza poleceń? Czy przeczytałeś strony podręcznika ImageMagick? Nie dałeś nam wiele w pytaniu do pracy, więc ciężko jest wiedzieć, jak ci pomóc. Oczekujemy, że sam podejmiesz poważny wysiłek, zanim zapytasz tutaj, i pokażesz nam w pytaniu, co próbowałeś i co się stało.
DW
Zasadniczo wystarczy uruchomić go z terminala z wybranymi opcjami. Z twojego pytania nie wiadomo, czy uruchomienie z terminala kończy się niepowodzeniem, czy nie wiesz, jak go użyć do wykonania określonego zadania, czy masz inny problem. Wyjaśnij, edytując pytanie, a następnie zostanie automatycznie umieszczone w kolejce ponownie.
nohillside
1
Spróbuj type -a comparei ls -l /usr/local/bin/comparezgodnie z sugestią Patrix.
4ae1e1
1
Dam ci listę rzeczy do wypróbowania wkrótce.
4ae1e1
1
może teraz jest to trochę bezużyteczne, ale to proste rozwiązanie zadziałało dla mnie: stackoverflow.com/questions/13998161/…
jjrr

Odpowiedzi:

12

Lista rzeczy do wypróbowania w kolejności (piszę odpowiedź zamiast komentarza w celu lepszego formatowania). Uruchom hash -rpo każdym kroku (zakładając, że jesteś w bash; zrób to rehashzamiast zsh; lub zawsze możesz otworzyć nową powłokę).

  1. Uruchom brew --prefixi sprawdź, czy dane wyjściowe są /usr/local. Jeśli nie, twój brewnie jest zainstalowany /usr/local! Dodaj $(brew --prefix)/bindo ciebie $PATH.

  2. Uruchom brew info imagemagicki upewnij się, że jest rzeczywiście zainstalowany; może wystąpił błąd podczas instalacji i po prostu nie został pomyślnie zainstalowany.

  3. Uruchom, brew link imagemagickaby dowiązanie symboliczne do /usr/local/bin; być może pliki wykonywalne nie zostały poprawnie dowiązane symbolicznie (z jakiegoś powodu);

  4. Uruchom, brew reinstall imagemagickaby ponownie zainstalować.

  5. Jeśli nadal nie działa, pokaż nam wyniki, brew list imagemagicka my zobaczymy, co jest nie tak.

4ae1e1
źródło
Masz rację! Wystąpił błąd w symlinkowaniu. Zobacz moją aktualizację.
Léo Léopold Hertz -
Zrobiłem rm '/ usr / local / bin / convert' i rm '/usr/local/share/man/man1/convert.1' ?
Léo Léopold Hertz 준영
@Masi To nie jest najlepsza rzecz do zrobienia. convertjest poleceniem ImageMagick, więc powiedziałbym, że jest to bezpieczne brew link --overwrite imagemagick. Jeśli chcesz być zbyt ostrożny, możesz najpierw brew link --overwrite --dry-run imagemagickprzejrzeć listę zastąpionych plików, ale powiedziałbym, że to nie jest konieczne.
4ae1e1
Nawiasem mówiąc, może zainstalowałeś jakieś oprogramowanie inne niż Homebrew, które zawierało plik convertbinarny /usr/local/bin? Czy możesz uruchomić, convert --versionaby upewnić się, że faktycznie jest to ImageMagick convert?
4ae1e1
1
@Masi hash -rzmienia listę poleceń znanych powłoce. Pomaga w autouzupełnianiu i tak dalej, więc czemu nie. resetma niewiele wspólnego ze środowiskiem powłoki, po prostu resetuje terminal i pomaga jedynie w problemach z drukowaniem.
4ae1e1
0

Propozycja jjrr w komentarzach, w której musisz również postępować zgodnie z instrukcjami

brew doctor
Léo Léopold Hertz 준영
źródło