Untuk menginstal Brew's ImageMagick dan memperbaiki Symlink-nya

15

Asumsikan Anda menginstal Imagemagick oleh

brew install imagemagick

tapi itu tidak masuk ke PATH Anda. Misalnya, saya gagal menjalankan

compare

karena imagemagick tidak dalam PATH: -bash: compare: command not found.

Perintah ls -l /usr/local/bin/comparememberi

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

.Bash_profile saya

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 $PATHmemberi

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

yang sepertinya ok karena /usr/local/bin/ada.

ImageMagick di sistem saya - jawaban untuk jawaban 4ae1e1

Perintah brew --prefixmemberi /usr/localbegitu ok.

Perintah brew info imagemagickmemberi

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

yang tampaknya ok.

Saya menjalankan perintah brew link imagemagickdan mendapatkan

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

Ini sepertinya aneh. Bagaimana Anda bisa mengatasi masalah ini?

Saya menjalankan perintah brew reinstall imagemagickdan mendapatkan

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

jadi ada yang salah dalam symlinking.

Bagaimana Anda bisa menyelesaikan kesalahan tentang symlink?

Léo Léopold Hertz 준영
sumber
Apa yang sudah kamu coba? Di mana Anda terjebak? Apakah Anda tahu cara menggunakan baris perintah? Sudahkah Anda membaca halaman manual ImageMagick? Anda belum memberi kami banyak hal untuk dikerjakan, jadi sulit untuk mengetahui bagaimana membantu Anda. Kami berharap Anda melakukan upaya serius sendiri sebelum bertanya di sini, dan menunjukkan kepada kami dalam pertanyaan apa yang telah Anda coba dan apa yang terjadi.
DW
Pada dasarnya Anda hanya menjalankannya dari Terminal dengan opsi yang Anda inginkan. Dari pertanyaan Anda tidak jelas apakah menjalankan dari Terminal gagal, apakah Anda tidak tahu bagaimana menggunakannya untuk menyelesaikan tugas tertentu atau apakah Anda memiliki masalah yang berbeda. Jadi tolong klarifikasi dengan mengedit pertanyaan Anda, kemudian akan secara otomatis dimasukkan ke dalam antrean buka kembali.
nohillside
1
Silakan coba type -a comparedan ls -l /usr/local/bin/compareseperti yang disarankan patrix.
4ae1e1
1
Saya akan memberi Anda daftar hal untuk dicoba segera.
4ae1e1
1
mungkin agak tidak berguna sekarang, tetapi solusi sederhana ini berhasil untuk saya: stackoverflow.com/questions/13998161/…
jjrr

Jawaban:

12

Daftar hal yang harus dicoba, secara berurutan (Saya menulis jawaban alih-alih komentar untuk pemformatan yang lebih baik). Jalankan hash -rsetelah setiap langkah (dengan asumsi Anda berada di bash; lakukan rehashsebaliknya untuk zsh; atau Anda selalu dapat membuka shell baru).

  1. Jalankan brew --prefixdan lihat apakah outputnya /usr/local. Jika tidak, Anda brewbelum diinstal ke /usr/local! Tambahkan $(brew --prefix)/binke Anda $PATH.

  2. Jalankan brew info imagemagickdan pastikan itu benar-benar diinstal; mungkin Anda memiliki kesalahan selama instalasi dan itu tidak berhasil diinstal.

  3. Jalankan brew link imagemagickke symlink ke /usr/local/bin; mungkin executable tidak di-symlink dengan benar (untuk beberapa alasan);

  4. Jalankan brew reinstall imagemagickuntuk menginstal ulang.

  5. Jika masih tidak berhasil, tunjukkan pada kami output dari brew list imagemagickdan kami akan melihat apa yang salah.

4ae1e1
sumber
Kamu benar! Ada beberapa kesalahan dalam symlinking. Lihat pembaruan saya.
Léo Léopold Hertz 준영
Saya melakukan rm '/ usr / local / bin / convert' dan rm '/usr/local/share/man/man1/convert.1' ?
Léo Léopold Hertz 준영
@Masi Itu bukan hal terbaik untuk dilakukan. convertadalah perintah ImageMagick, jadi menurut saya aman untuk dilakukan brew link --overwrite imagemagick. Jika Anda ingin terlalu berhati-hati, Anda dapat brew link --overwrite --dry-run imagemagickmelihat daftar file yang ditimpa terlebih dahulu, tetapi saya katakan itu tidak perlu.
4ae1e1
Omong-omong, mungkin Anda menginstal beberapa perangkat lunak non-Homebrew yang menyediakan convertbiner /usr/local/bin? Bisakah Anda menjalankan convert --versionuntuk memastikan itu sebenarnya ImageMagick convert?
4ae1e1
1
@Masi hash -rmengulangi daftar perintah yang dikenal ke shell. Ini membantu dengan pelengkapan otomatis dan yang lainnya, jadi mengapa tidak. resettidak ada hubungannya dengan lingkungan shell Anda, itu hanya me-reset terminal dan membantu dengan masalah pencetakan.
4ae1e1
0

proposal jjrr di komentar di mana Anda perlu mengikuti instruksi juga

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