RMagick kurulumu: MagickWand.h bulunamıyor


164

RMagick ve Imagemagick'i güncellemek acı verici bir deneyimdir. Mac'imdeki Imagemagick sürümünü (MacOS El Capitan Sürüm 10.11.5) Ruby 2.3'te bir proje için homebrew ile güncelledim6.9.5-9

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

Şimdi Ruby 1.8.7'deki daha eski bir proje "RMagick'in bu kurulumu ImageMagick 6.8.9 ile yapılandırıldı ancak ImageMagick 6.9.5-9 kullanımda" hata mesajıyla çalışmayı reddediyor. Böylece "rmagick" kaldırdım, ama tekrar kurulamaz

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

Ve kurulamazsa, tüm uygulama başlatılamaz. Ben tüm cevapları çalıştı burada , ve hiçbiri MacOS çalışır :-( Ben homebrew ile imagemagick ve pkg-config yeniden ve başarılı olamadı RMagick çeşitli versiyonunu denedik. 2.16.0 en son sürümüdür RMagick şu anda.

MagicWand, ImageMagick> 6.9 sürümünde kullanılmış gibi görünüyor ve makinede bulunabilir:

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

Gem yükleme sırasında bu yolları belirtmiş olsam bile çalışmıyor (yukarıdakiyle aynı hata) :-(

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

GÜNCELLEME:

Hata sadece Ruby 1.8.7 için oluşur, Ruby 2.0 ve Ruby 2.3 için RMagick kurmak mümkündür. Ruby 1.8.7 ve ImageMagick 6.9.5 uyumlu görünmüyor.

  • Yakut 1.8.7 x
  • Yakut 2.0.0 ✓
  • Yakut 2.3.1 ✓


Bu nedir, Harry Potter oyunu?
Sınırlı Kefaret

1
@LimitedAtonement görünüşe göre evet :-)
0x4a6f4672

Yanıtlar:


461

Mac OSX Sierra, High Sierra, El Capitan, Mojave ve Catalina'daki sorunu çözmek için aşağıdakileri yapabilirsiniz:

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

imagemagick@6olduğu keg-onlybağladıktan zorlamak gerekir, böylece.


7
brew unlink imagemagickBağlantıdan önce manuel olarak bağlantıyı kesmek zorunda kaldım - ama işe yaradı. Çok teşekkürler.
Haris Krajina

2
Vay. Super, ImageMagick'in en son sürümüne sahip olamadığım için berbat, ancak bu işe yarıyor. Teşekkürler!
Fomentia

1
Ubuntu Ubuntu ile mükemmel çalışır 16.04.3 LTS
violentr

55

Aynı sorunu ImageMagick 7.0.4-4 ile yaşadım . Doğru düzeltme takmaktır imagemagick@6. Yanlışlıkla sildiyseniz veya ilk etapta yüklemediyseniz https://github.com/Homebrew/homebrew-core/pull/8756 yararlı buldum imagemagick@6.


VAOV! Bu bağlantı için çok teşekkür ederim. Bunu düzeltmeye çalışırken iş günümün neredeyse yarısını boşa harcadım.
17'de kalehv

14
İmagemagick @ 6'nın yalnızca fıçı olduğunu unutmayın, bu nedenle bağlantı kurmaya zorlamanız gerekir. brew install imagemagick@6 && brew link imagemagick@6 --forcebenim için çözdü
Darren Cheng

1
Harika, şerefe! Bu benim için çalıştı:brew install --force imagemagick@6 && brew link imagemagick@6 --force
Bella

1
Evet, önceki sürümü (6x) yüklemek kesinlikle düzeltecektir. Sorun, imagemagick dosyalarının klasör yapısının 7x sürümünde değişmesidir. Gem kurulurken 6x'in sahip olduğu klasör yapısını varsayar
Prakash Raman

Imagemagick @ 6'ya geri dönmek maalesef benim için çalışmıyor. Yeniden yükledikten ve yeniden bağladıktan sonra bile rmagick yüklemeye çalışırken bu mesajı alıyorum: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

macOs Sierra:

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

1
-1 çünkü hiçbir sebepten dolayı bağlantıyı zorlamıyorsunuz ya da kimseye bunun neden kötü bir fikir olduğunu söylemiyorsunuz. Cevabımı MacPorts yerine Homebrew anlamında "düzgün" yapmak için bakın.
mmlac

21

Her şeyden önce, en son mac yüksek sierra kullanarak düzgün yüklenmemiş yüklü imagemagick bağlantısını kaldırın.

brew unlink imagemagick

sonra aşağıdaki komutu kullanarak en son imagemagic6'yı yükleyin

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

Ardından aşağıdaki komutu kullanarak gem rmagick'i yükleyin

gem install rmagick 

Mükemmel çalışır.


16

yah bu benim sorunumu çözer:

MacOS X Sierra:

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

14

ImageMagick 7'de bu yol gibi birçok şey değişti:, include/.../wand vewand/MagickWand.h şu anda rmagic gem'de kablolu. Benim durumumda, proje oldukça eski olduğu için gem güncellemek mümkün değildi. Böylece ImageMagic'in daha eski bir sürümünü yükledim.

En son sürümü 6.xx'den yükleyebilirsiniz:

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

Daha sonra kullanmak için sabitleyebilirsiniz: brew pin imagemagick


1
Benim için çalıştı: Mac OS 10.12.X. Önce ImageMagick 7'yi yükledim ve raylar gem rmagick'in yüklenmesi ile ilgili problemler yaşadım.
Simon Franzen

11

ImageMagick 7.0.4-4'te benim için bir şey değişti . wand/MagickWand.hartık bulunamadı:

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

Sistemimde hala ImageMagick 6.9.7-3 vardı ve

% 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

Daha sonra rmagicksorunsuz bir şekilde kurabilirim :

% gem install rmagick
Building native extensions.  This could take a while...
Successfully installed rmagick-2.16.0
1 gem installed

Herhangi bir çözüm bulabilir misiniz? Seninle aynı sorunları yaşıyorum.
Kemal Akkoyun

söylediğim gibi. imagemagick 6.9'a geri dönmek benim için düzeltiyor.
Holger Frohloff

1
Teşekkürler, öneriye göre bunu aldım ve düzelttim. Ama en son ImageMagick sürümünü kullanarak çözdünüz mü sormaya çalışıyordum? Sonra da github.com/rmagick/rmagick/issues/256 sorununu buldum, bu da ImageMagick'i de yaptığınız gibi düşürmeyi önerdi. Tekrar teşekkürler.
Kemal Akkoyun

Hoşgeldiniz. Sürüm 7.x kullanarak sorunu çözmedim. Sanırım oldukça çabuk bir düzeltme olacak. Göreceğiz. :)
Holger Frohloff

6

RMagick, imagemagick, sürüm 6'nın eski bir sürümüne bağlıdır. (Aşağıya bakın) Homebrew, bunu yükleyebileceğiniz yalnızca fıçı paketi olarak sunar:

brew install imagemagick@6

Derleme çıktısı bir Uyarılar bölümü içerecektir ( brew info imagemagick@6çıktıyı temizlediyseniz da kullanılabilir ):

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

Aksine kuvvet bağlama, diğer yazılımlar ile neden sorunların potansiyeline sahip daha gelmez imagemagic'den yeni sürümlerini desteklemek, önerilen kullanabilirsiniz exportkendi oluşturduğu ederken RMagick mücevher eski sürümü almak yapmak için s:

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. Git yardım yükseltme çabalarına katkıda Ruby'yi ve C biliyorsanız!

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

ipuçları ve öneriler için teşekkürler, ne yazık ki yardımcı olmadı :-(
0x4a6f4672

1
Bu cevap sözü edilen tek cevaptı pkg-configve işe yaradı.
Jason Kim

pkg-config başarının anahtarıdır. Çok teşekkür ederim.
Michael Johann

5

Bunu başka bir yanıtı geliştiren bir yorum olarak bırakma konusundaki üne henüz sahip değilim, ancak @ Evgeniy28'in yanıtı, yeni bir Sierra makinesine varsayılan olarak yüklenmeyen pkg-config'i yükledikten sonra Sierra'da benim için çalıştı.

Yani:

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

Başarı:

$ 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

Benim için çalıştı, Sierra 10.12.6
Ivan Danci

5

Lütfen aşağıda takip edin ve ihtiyacınıza göre bir kısmı değiştirin.

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'

4

Sürüm 7 uyumlu olmadığından imagemagick sürüm 6'yı yükleyin:

$ brew install imagemagick@6

Olmamalı force eski sürümü bağlamak bu yoldaki ikilileri değişecek ve iyi çünkü brew doctorşikayet edecektir.

Gem'in yerel uzantısını oluştururken yüklenen sürüm 6'daki başlıklara ve kitaplıklara bakın:

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

Not: Pkgconfig bundan sorumlu olduğu için lib ve include klasörünü belirtmeden benim için çalıştı.

Not: 6.9.10-14, imagemagick @ 6'nın en son sürümüdür, ancak farklı bir sürüm kullanmanız gerekiyorsa değiştirmekten çekinmeyin


3

Homebrew ile macOS High Sierra 10.13.3'te (birçok deneme ve başarısızlıktan sonra) şu şekilde çözdüm:

  1. RMagick 2.16.0'ın ImageMagick'in en yeni sürümüyle uyumlu olmadığı anlaşılıyor (Sürüm 7): http://wordsandmagic.com/2017/09/01/RMagick-2-16-0-Error-MagickWand
  2. Imagemagick'i kaldırdım: brew uninstall imagemagick
  3. Sonra Imagemagick'i şu formüle yükledim: https://gist.github.com/JagdeepSingh/4b03cbeab16cc0bc729bbc6d275402d3
  4. gem install rmagick

Eski bir Imagemagick sürümünü zaten yüklediyseniz, bu işe yaramalıdır: https://stackoverflow.com/a/41674363


2

7.0.7-1 sürümünde sembolik bir bağlantı oluşturabilirsiniz, ancak bu derleme başarısız olur.

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

2

Demlemek için herhangi bir şey bağlamaya veya bağlantısını kaldırmaya gerek yoktur, demlemek kurulum komut dosyasındaki talimatları takip etmek yardımcı olur:

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

1

Alpine 3.9 görüntü oluşturma için aynı hatayı aldım. ImageMagick 7.0.8.38-r0 ile birlikte geliyor

ImageMagick 6.9.6.8-r1 ile alpine 3.5 kullandığınızı düzeltmek için :

FROM alpine:3.5

Veya 3.5 için paket deposuyla ImageMagick 6.9.6.8-r1'i yükleyin:

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

Rmagick repo'da ImageMagick 7.0.x için başarısız derlemelerle ilgili açık bir sorun var . umarım yakında düzeltilecektir.


0

Sistemimde bir şey çok yanlıştı, o kadar kötü ki tamamen f * d oldu, ama sonunda yükledikten sonra RMagick Ruby 1.8.7 için tekrar yükleyebildim

RVM ile yeni bir Ruby sürümünün rvm install 1.8.7yüklenmesi de yeni bir GCC derleyicisi yükledi: daha eski bir GCC sürüm 4.6 ve GCC sürüm 4.9'u yükledi. Görünüşe göre GCC, pkg-config'e rağmen doğru başlıkları bulamadı.


0

Centos'daki ImageMagick kurulumundaki kurulum işlemini tam olarak açıklarım .

neyse ...
yükledikten sonra aşağıdaki gibi Imagick & ImageMagick-devel ve ImageMagick PHP kütüphanesini kurun:

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

/ usr / include adresine gidin

cd /usr/include

Önemli: ImageMagick klasörünü "MagickWand.h" için "/ usr / include" dizininden "/ usr / local / include" dizinine kopyalayın

Bu değişikliği imagick-3.4.3 (ImageMagick-7) ve centos 6.5 ve php56 üzerinde test ettim ve mükemmel çalışıyor ...

"ImageMagick" uygulamasını birkaç kez yüklediyseniz, önce hepsini kaldırın ve "ImageMagick" ve "imagick" klasörlerini bulun ve hepsini temizleyin ve kurulum işlemine bu değişiklikle devam edin.

Bir dosya veya klasör bulmak için aşağıdaki komutu kullanın:

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

ve
aşağıdaki satırları unutmadan önce kurulumunuza devam edin : "php.ini" adresine gidin "find_ctivations" bul ve temiz "proc_open, popen, proc_close" imagick'in bu işlevlere ihtiyaç duymasını sağlar, tam kurulumdan sonra bu işlevleri " "php.ini" dosyasındaki devre dışı_ifonlar ".

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

İyi şanslar...


0

Ubuntu sürüm 12 için ve homebrew kullanmamak için,

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

Wget bağlantısında 'tar.gz' dosyaları yerine '7z' dosyaları alıyorsanız, o zaman

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

Ardından RMagick için paketleyicinizi devam ettirebilirsiniz.


-1

İlk olarak, aşağıda gösterildiği gibi 6.x yüklüyse imagemagick'i kaldırmanız gerekmez. Mevcut "ana" olduğunu görebilirsiniz 7.0.7-8ama 6.9.1-10hala orada.

$ 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

Eski bir 6.x sürümü yoksa, o zaman @ 6 imagemagick yükleyin.

İkincisi, link imagemagick'i, özellikle de 6'yı zorlamayın . EDIT: Bkz.
W --with-opt- * bayraklarına ek olarak PKG_CONFIG_PATH ayarlamanız gerekir.

Benim için Ruby 1.9.3-p551'de adı geçen demleme kurulumu ile High Sierra'da çalışır:

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/

Ri doküman oluşturma başarısız olur, ancak bunlar önemsizdir.

¹: İnşaat işleri, RMagick'in aradığı dylib yolu yanlış. Sorunun düzeltilip düzeltilemeyeceğini açıklamak için Sayı 278'e bakınız . Aksi takdirde, libMagickWand vb. Öğelerinin manuel olarak iliştirilmesi gerekir. Belirli kütüphaneleri manuel olarak bağlamak bir süreden daha güvenli olabilir brew link --force.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.