Instalasi RMagick: Tidak dapat menemukan MagickWand.h

164

Memperbarui RMagick dan Imagemagick adalah pengalaman yang menyakitkan. Saya telah memperbarui versi Imagemagick di mac saya (MacOS El Capitan Versi 10.11.5) dengan homebrew untuk satu proyek di Ruby 2.3 hingga6.9.5-9

$ convert --version
Version: ImageMagick 6.9.5-9 Q16 x86_64 2016-09-09

Sekarang proyek lama di Ruby 1.8.7 menolak untuk bekerja dengan pesan kesalahan "instalasi RMagick ini dikonfigurasikan dengan ImageMagick 6.8.9 tetapi ImageMagick 6.9.5-9 sedang digunakan". Jadi saya uninstall "rmagick", tetapi tidak dapat diinstal lagi

$ gem install rmagick -v 2.16.0
Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
ERROR: Failed to build gem native extension.

checking for /usr/local/opt/gcc46/bin/gcc-4.6... yes
checking for Magick-config... yes
checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... no
checking for sys/types.h... no
checking for wand/MagickWand.h... no

Can't install RMagick 2.16.0. Can't find MagickWand.h. 

Dan jika tidak dapat diinstal, seluruh aplikasi tidak dapat dimulai. Saya mencoba semua jawaban dari sini , dan tidak ada yang bekerja pada MacOS :-( Saya menginstal ulang imagemagick dan pkg-config dengan homebrew, dan mencoba berbagai versi RMagick tanpa hasil. 2.16.0 adalah versi terbaru dari RMagick saat ini.

MagicWand tampaknya digunakan dalam versi ImageMagick> 6.9, dan itu dapat ditemukan di mesin:

find /usr/local -name MagickWand.h
=> /usr/local/Cellar/imagemagick/6.9.5-9_1/include/ImageMagick-6/wand/MagickWand.h

find /usr/local -name MagickWand.pc
=> /usr/local/Cellar/imagemagick/6.9.5-9_1/lib/pkgconfig/MagickCore.pc

Itu tidak bekerja bahkan jika saya menentukan jalur ini selama instalasi permata (kesalahan yang sama seperti di atas) :-(

C_INCLUDE_PATH=/usr/local/Cellar/imagemagick/6.9.5-9_1/include/ImageMagick-6 PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick

MEMPERBARUI:

Kesalahan hanya terjadi untuk Ruby 1.8.7, dimungkinkan untuk menginstal RMagick untuk Ruby 2.0 dan Ruby 2.3. Ruby 1.8.7 dan ImageMagick 6.9.5 tampaknya tidak kompatibel.

  • Ruby 1.8.7 x
  • Ruby 2.0.0 ✓
  • Ruby 2.3.1 ✓
0x4a6f4672
sumber
Apa ini, permainan Harry Potter?
Penebusan Terbatas

Jawaban:

461

Untuk mengatasi masalah di Mac OSX Sierra, High Sierra, El Capitan, Mojave, dan Catalina , Anda dapat melakukan hal berikut:

brew unlink imagemagick
brew install imagemagick@6 && brew link imagemagick@6 --force

imagemagick@6adalah keg-only, jadi Anda harus memaksa tautan.

KM Rakibul Islam
sumber
7
Harus memutuskan tautan secara manual brew unlink imagemagicksebelum tautan - tetapi berhasil. Terima kasih banyak.
Haris Krajina
2
Wow. Super menyebalkan bahwa saya tidak dapat memiliki versi terbaru dari ImageMagick, tetapi ini berfungsi. Terima kasih!
Fomentia
1
Berfungsi sempurna dengan Ubuntu Ubuntu 16.04.3 LTS
violentr
55

Saya memiliki masalah yang sama dengan ImageMagick 7.0.4-4 . Perbaikan yang tepat adalah menginstal imagemagick@6. Saya menemukan https://github.com/Homebrew/homebrew-core/pull/8756 berguna jika Anda secara tidak sengaja menghapus imagemagick@6atau tidak pernah menginstalnya di tempat pertama.

Raymond Cox
sumber
WOW! Terima kasih banyak atas tautannya. Saya menghabiskan hampir setengah dari hari kerja saya untuk mencoba memperbaikinya.
kalehv
14
Perhatikan bahwa imagemagick @ 6 hanya tong, jadi Anda harus memaksa tautan. brew install imagemagick@6 && brew link imagemagick@6 --forcememecahkannya untukku
Darren Cheng
1
Luar biasa, tepuk tangan! Ini bekerja untuk saya:brew install --force imagemagick@6 && brew link imagemagick@6 --force
Bella
1
Ya, menginstal versi sebelumnya (6x) pasti akan memperbaikinya. Masalahnya adalah bahwa struktur folder file imagemagick telah berubah dalam versi 7x. Dan ketika menginstal permata itu dengan asumsi struktur folder yang 6x miliki
Prakash Raman
Menggulung kembali ke imagemagick @ 6 sayangnya tidak bekerja untuk saya. Bahkan setelah menginstal ulang dan menautkan ulang saya masih mendapatkan pesan ini ketika mencoba menginstal rmagick: Using 6.9.8 Q16 from /usr/local/Cellar/imagemagick@6/6.9.8-3. checking for outdated ImageMagick version (<= 6.4.9)... yes checking for Ruby version >= 1.8.5... yes checking for stdint.h... no checking for sys/types.h... no checking for wand/MagickWand.h... no Can't install RMagick 2.15.0. Can't find MagickWand.h.
Will Hitchcock
32

Sierra Sierra:

brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
Evgeniy28
sumber
1
-1 karena Anda memaksakan tautan tanpa alasan atau memberi tahu siapa pun mengapa ini adalah ide yang buruk untuk memulai. Lihat jawaban saya untuk melakukannya "dengan benar" dalam arti Homebrew dan bukan MacPorts.
mmlac
21

Pertama-tama batalkan tautan imagemagick Anda yang terpasang yang tidak dipasang dengan benar di mac high sierra terbaru dengan menggunakan.

brew unlink imagemagick

kemudian instal imagemagic6 terbaru menggunakan perintah di bawah ini

brew install imagemagick@6 && brew link imagemagick@6 --force

Kemudian instal gem rmagick menggunakan perintah di bawah ini

gem install rmagick 

Ini akan bekerja dengan baik.

Ali Hassan Mirza
sumber
16

yah ini memecahkan masalah saya:

MacOS X Sierra:

brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force
BMA88
sumber
14

Banyak hal telah berubah di ImageMagick 7 seperti jalur ini:, include/.../wand danwand/MagickWand.h :, sudah tertanam dalam permata rmagic saat ini. Dalam kasus saya, tidak mungkin memperbarui permata karena proyeknya agak lama. Jadi saya akhirnya menginstal versi yang lebih lama dari ImageMagic.

Anda dapat menginstal versi terbaru dari 6.xx:

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/6f014f2b7f1f9e618fd5c0ae9c93befea671f8be/Formula/imagemagick.rb

Anda juga dapat menyematkannya untuk usege nanti: brew pin imagemagick

Peter Toth - Toma
sumber
1
Bekerja untuk saya: Mac OS 10.12.X. Saya menginstal ImageMagick 7 pertama dan memiliki masalah dengan menginstal rel rmagick.
Simon Franzen
11

Sesuatu berubah dengan ImageMagick 7.0.4-4 untuk saya. wand/MagickWand.htidak dapat ditemukan lagi:

% brew unlink imagemagick && brew link imagemagick
Unlinking /usr/local/Cellar/imagemagick/7.0.4-4... 71 symlinks removed
Linking /usr/local/Cellar/imagemagick/7.0.4-4... 71 symlinks created
% gem install rmagick
Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.

    /Users/holger/.rbenv/versions/2.2.2/bin/ruby -r ./siteconf20170116-21103-1aikaka.rb extconf.rb
checking for clang... yes
checking for Magick-config... no
checking for pkg-config... yes
checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
checking for Ruby version >= 1.8.5... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... no

Can't install RMagick 2.16.0. Can't find MagickWand.h.

Saya masih memiliki ImageMagick 6.9.7-3 di sistem saya dan diganti dengan

% brew switch imagemagick 6.9.7-3
Cleaning /usr/local/Cellar/imagemagick/6.9.6-6
Cleaning /usr/local/Cellar/imagemagick/6.9.7-0
Cleaning /usr/local/Cellar/imagemagick/6.9.7-1
Cleaning /usr/local/Cellar/imagemagick/6.9.7-3
Cleaning /usr/local/Cellar/imagemagick/7.0.4-4
75 links created for /usr/local/Cellar/imagemagick/6.9.7-3

Setelah itu saya dapat menginstal rmagicktanpa masalah:

% gem install rmagick
Building native extensions.  This could take a while...
Successfully installed rmagick-2.16.0
1 gem installed
Holger Frohloff
sumber
Bisakah Anda menemukan solusi? Saya mengalami masalah yang sama dengan Anda.
Kemal Akkoyun
seperti yang saya katakan. beralih kembali ke imagemagick 6,9 memperbaikinya untuk saya.
Holger Frohloff
1
Terima kasih, saya dapat dan memperbaikinya, sesuai saran Anda. Tapi apa yang saya coba tanyakan apakah Anda telah menyelesaikannya menggunakan versi ImageMagick terbaru? Kemudian saya menemukan masalah terkait github.com/rmagick/rmagick/issues/256 yang juga menyarankan untuk menurunkan versi ImageMagick seperti yang Anda lakukan. Jadi terima kasih lagi
Kemal Akkoyun
Terima kasih kembali Saya belum memecahkan masalah menggunakan versi 7.x. Saya kira akan ada perbaikan agak cepat. Kita lihat saja nanti. :)
Holger Frohloff
6

RMagick tergantung pada versi imagemagick yang sudah ketinggalan zaman, versi 6. (lihat di bawah) Homebrew menawarkan ini sebagai paket tong saja, yang dapat Anda instal dengan:

brew install imagemagick@6

Output build akan mencakup a bagian Peringatan (juga tersedia dari brew info imagemagick@6jika Anda menghapus output):

==> Caveats
imagemagick@6 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have imagemagick@6 first in your PATH run:
  echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.zshrc

For compilers to find imagemagick@6 you may need to set:
  export LDFLAGS="-L/usr/local/opt/imagemagick@6/lib"
  export CPPFLAGS="-I/usr/local/opt/imagemagick@6/include"

For pkg-config to find imagemagick@6 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"

Daripada kekuatan-linking, yang memiliki potensi untuk menyebabkan masalah dengan perangkat lunak lain yang tidak mendukung versi yang lebih baru dari ImageMagick, Anda dapat menggunakan disarankanexport s untuk membuat RMagick permata mengambil versi lama sementara itu membangun:

export LDFLAGS="-L/usr/local/opt/imagemagick@6/lib"
export CPPFLAGS="-I/usr/local/opt/imagemagick@6/include"
export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"
gem install rmagick

  1. Go, bantu berkontribusi pada upaya peningkatan jika Anda tahu Ruby dan C!
Phil Calvin
sumber
5
$ brew remove imagemagick && brew install imagemagick

$ brew uninstall pkg-config && brew install pkg-config
$ brew unlink pkg-config && brew link pkg-config

$ gem install rmagick
Yury Lebedev
sumber
terima kasih atas tips dan sarannya, sayangnya itu tidak membantu :-(
0x4a6f4672
1
Jawaban ini adalah satu-satunya yang disebutkan pkg-configdan berhasil.
Jason Kim
pkg-config adalah kunci kesuksesan. Terima kasih banyak.
Michael Johann
5

Saya belum memiliki reputasi untuk meninggalkan ini sebagai komentar yang meningkatkan jawaban lain, tetapi jawaban @ Evgeniy28 hanya berfungsi untuk saya di Sierra setelah menginstal pkg-config, yang tidak diinstal secara default pada mesin Sierra yang baru.

Begitu:

brew install pkg-config
brew uninstall imagemagick
brew install imagemagick@6
brew link imagemagick@6 --force

Keberhasilan:

$ gem install rmagick
Building native extensions.  This could take a while...
Successfully installed rmagick-2.16.0
Parsing documentation for rmagick-2.16.0
Installing ri documentation for rmagick-2.16.0
Done installing documentation for rmagick after 4 seconds
1 gem installed
Andrew Brown
sumber
Bekerja untuk saya, Sierra 10.12.6
Ivan Danci
5

Silakan ikuti di bawah ini dan ubah beberapa bagian sesuai dengan kebutuhan Anda.

brew unlink imagemagick
brew install imagemagick@6 && brew link imagemagick@6 --force
export PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick@6/6.9.9-24/lib/pkgconfig
gem install rmagick -v '2.15.4'
Lalit Kumar Maurya
sumber
4

Instal imagemagick versi 6 karena versi 7 tidak kompatibel:

$ brew install imagemagick@6

Seharusnya tidak menautkan - memaksa versi yang lebih lama karena ini akan mengubah biner di jalur Anda dan kebaikan brew doctorakan mengeluh.

Referensi header dan pustaka dari versi 6 yang diinstal ketika membangun ekstensi asli permata:

$ PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick@6/6.9.10-14/lib/pkgconfig/ gem install rmagick -v '2.16.0'

Catatan: Bekerja untuk saya tanpa menunjukkan lib dan menyertakan folder karena pkgconfig bertanggung jawab untuk ini.

Catatan: 6.9.10-14 adalah versi terbaru dari imagemagick @ 6, tetapi jangan ragu untuk mengubahnya jika Anda perlu menggunakan versi yang berbeda

wlads
sumber
3

Inilah cara saya memecahkan (setelah banyak mencoba dan gagal) pada macOS High Sierra 10.13.3 dengan Homebrew:

  1. sepertinya RMagick 2.16.0 tidak kompatibel dengan versi terbaru dari ImageMagick (Versi 7): http://wordsandmagic.com/2017/09/01/RMagick-2-16-0-Error-MagickWand
  2. Saya menghapus imagemagick: brew uninstall imagemagick
  3. Kemudian saya menginstal Imagemagick dengan rumus ini: https://gist.github.com/JagdeepSingh/4b03cbeab16cc0bc729bbc6d275402d3
  4. gem install rmagick

Jika Anda sudah menginstal Imagemagick versi lama, ini seharusnya berfungsi: https://stackoverflow.com/a/41674363

iGian
sumber
2

di versi 7.0.7-1 Anda dapat membuat tautan simbolik, tetapi kompilasi akan gagal.

cd /usr/local/Cellar/imagemagick/7.0.7-1/include/ImageMagick-7
ln -s MagickWand/ wand
ln -s MagicCore/ magick
teritorial
sumber
2

Tidak perlu menautkan atau memutuskan tautan apa pun, mengikuti petunjuk dari skrip instalasi buatan membantu:

brew install imagemagick@6
LDFLAGS="-L/usr/local/opt/imagemagick@6/lib" CPPFLAGS="-I/usr/local/opt/imagemagick@6/include" PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig" gem install rmagick
januszm
sumber
1

Mendapat kesalahan yang sama untuk build gambar alpine 3.9. Muncul dengan ImageMagick 7.0.8.38-r0

Untuk memperbaikinya Anda menggunakan alpine 3.5 dengan ImageMagick 6.9.6.8-r1 :

FROM alpine:3.5

Atau instal ImageMagick 6.9.6.8-r1 dengan repositori paket untuk 3.5:

RUN apk add imagemagick-dev=6.9.6.8-r1 --repository http://dl-3.alpinelinux.org/alpine/v3.5/main/

Ada masalah terbuka di repo rmagick tentang gagal membangun untuk ImageMagick 7.0.x. jadi semoga segera diperbaiki.

Martin Zinovsky
sumber
0

Ada sesuatu yang sangat salah pada sistem saya, begitu parah sehingga benar-benar rusak, tetapi saya akhirnya dapat menginstal RMagick untuk Ruby 1.8.7 lagi setelah saya menginstal

Instalasi versi Ruby baru dengan RVM rvm install 1.8.7juga memasang kompiler GCC baru: menghapus versi GCC 4.6 yang lebih lama dan menginstal versi GCC 4.9. Tampaknya GCC tidak dapat menemukan tajuk yang tepat meskipun pkg-config.

0x4a6f4672
sumber
0

Saya sepenuhnya menjelaskan proses instalasi di ImageMagick instal dalam centos .

Lagi pula ...
setelah menginstal Instal Imagick & ImageMagick-devel & ImageMagick perpustakaan PHP seperti di bawah ini:

# yum install ImageMagick
# yum install ImageMagick-devel
# pecl install Imagick

pergi ke / usr / include

cd /usr/include

Penting: salin folder ImageMagick dari "/ usr / include" ke "/ usr / local / include" untuk ImageMagick cari "MagickWand.h"

Saya menguji perubahan ini pada imagick-3.4.3 (ImageMagick-7) dan centos 6.5 dan php56 dan berfungsi dengan baik ...

Jika Anda telah menginstal "ImageMagick" beberapa kali, pertama-tama hapus semuanya dan cari folder "ImageMagick" & "imagick" dan bersihkan semuanya dan lanjutkan proses instalasi dengan perubahan ini.

Gunakan perintah berikut untuk menemukan file atau folder:

find / -name 'ImageMagick*'
find / -name 'imagick*'

dan lanjutkan instalasi Anda
sebelum baris berikut jangan lupa: buka "php.ini" cari "disable_functions" dan bersihkan "proc_open, popen, proc_close" karena membuat imagick memerlukan fungsi-fungsi ini, setelah selesai menginstal Anda dapat menambahkan fungsi ini ke " disable_functions "on" php.ini "file.

# phpize
# ./configure --with-php-config=/usr/local/php56/bin/php-config 
...

Semoga berhasil...

Ferhad Konar
sumber
0

Untuk versi Ubuntu> 12 dan tidak menggunakan homebrew,

wget http://www.imagemagick.org/download/<required_imagemagick_version>
tar -xvf <path_to_your_downloaded_file>.tar.gz

Jika Anda mendapatkan file '7z' alih-alih file 'tar.gz' di tautan wget, maka

7z x <path_to_your_downloaded_file>.7z
cd <path_to_your_downloaded_file>/
make
./configure
sudo make install
sudo ldconfig /usr/local/lib

Kemudian Anda dapat melanjutkan bundler Anda untuk RMagick.

remonses
sumber
-1

Pertama, Anda tidak perlu menghapus instalan imagemagick jika sudah terpasang 6.x, seperti yang ditunjukkan di bawah ini. Anda dapat melihat "main" saat ini 7.0.7-8tetapi 6.9.1-10masih ada di sana.

$ brew info imagemagick                                                            
imagemagick: stable 7.0.7-8 (bottled), HEAD
Tools and libraries to manipulate images in many formats
https://www.imagemagick.org/
/usr/local/Cellar/imagemagick/6.9.1-10 (1,450 files, 17.5MB)
  Poured from bottle on 2015-07-26 at 09:10:58
/usr/local/Cellar/imagemagick/7.0.6-9 (1,522 files, 22.8MB)
  Poured from bottle on 2017-08-21 at 14:44:16
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula

Jika Anda tidak memiliki versi 6.x lama, maka instal imagemagick @ 6.

Kedua, jangan paksa tautan imagemagick, terutama tidak 6. EDIT: Lihat ¹
Anda perlu mengatur PKG_CONFIG_PATH sebagai tambahan pada flag --with-opt- *.

Ini berfungsi untuk saya di High Sierra dengan pengaturan minuman yang disebutkan di Ruby 1.9.3-p551:

PKG_CONFIG_PATH=/usr/local/Cellar/imagemagick/6.9.1-10/lib/pkgconfig  \
  gem install rmagick -v '2.16.0' -- \
  --with-opt-lib=/usr/local/Cellar/imagemagick/6.9.1-10/lib/ \
  --with-opt-include=/usr/local/Cellar/imagemagick/6.9.1-10/include/ImageMagick-6/

Membangun dokumen gagal, tetapi itu tidak penting.

¹: Bangunan berhasil, jalur dylib yang dicari RMagick salah. Mengangkat Masalah # 278 untuk mengklarifikasi apakah ini dapat diperbaiki. Jika tidak, symlinking manual libMagickWand dll diperlukan. Mungkin masih lebih aman untuk menautkan pustaka tertentu secara manual daripada yang lain brew link --force.

mmlac
sumber