Cài đặt RMagick: Không thể tìm thấy MagickWand.h


164

Cập nhật RMagickImagemagick là một trải nghiệm đau đớn. Tôi đã cập nhật phiên bản Imagemagick trên máy mac của mình (MacOS El Capitan Phiên bản 10.11.5) với homebrew cho một dự án trong Ruby 2.3 tới6.9.5-9

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

Giờ đây, một dự án cũ hơn trong Ruby 1.8.7 từ chối hoạt động với thông báo lỗi "bản cài đặt này của RMagick đã được cấu hình với ImageMagick 6.8.9 nhưng ImageMagick 6.9.5-9 đang được sử dụng". Vì vậy, tôi đã gỡ cài đặt "rmagick", nhưng nó không thể được cài đặt lại

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

Và nếu không thể cài đặt, toàn bộ ứng dụng không thể khởi động. Tôi đã thử tất cả các câu trả lời từ đây và không có câu trả lời nào hoạt động trên MacOS :-( Tôi đã cài đặt lại hình ảnh tưởng tượng và pkg-config với homebrew và đã thử phiên bản khác nhau của RMagick mà không thành công. 2.16.0 là phiên bản mới nhất của RMagick hiện tại.

MagicWand dường như được sử dụng trong phiên bản ImageMagick> 6,9 và có thể tìm thấy nó trên máy:

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

Nó không hoạt động ngay cả khi tôi chỉ định các đường dẫn này trong quá trình cài đặt gem (lỗi tương tự như trên) :-(

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

CẬP NHẬT:

Lỗi chỉ xảy ra với Ruby 1.8.7, có thể cài đặt RMagick cho Ruby 2.0 và Ruby 2.3. Ruby 1.8.7 và ImageMagick 6.9.5 dường như không tương thích.

  • Ruby 1,8,7 x
  • Ruby 2.0.0 ✓
  • Ruby 2.3.1 ✓


Đây là gì, một trò chơi Harry Potter?
Chuộc tội giới hạn

Câu trả lời:


460

Để giải quyết vấn đề trong Mac OSX Sierra, High Sierra, El Capitan, Mojave và Catalina , bạn có thể làm như sau:

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

imagemagick@6keg-only, vì vậy bạn sẽ cần buộc liên kết.


7
Phải hủy liên kết thủ công brew unlink imagemagicktrước khi liên kết - nhưng nó đã hoạt động. Cảm ơn rất nhiều.
Haris Krajina

2
Ồ Siêu hấp dẫn rằng tôi không thể có phiên bản ImageMagick mới nhất, nhưng điều này hoạt động. Cảm ơn!
Fomentia

1
Hoạt động hoàn hảo với Ubuntu Ubuntu 16.04.3 LTS
violentr

55

Tôi gặp vấn đề tương tự với ImageMagick 7.0.4-4 . Cách khắc phục thích hợp là cài đặt imagemagick@6. Tôi thấy https://github.com/Homebrew/homebrew-core/pull/8756 hữu ích nếu bạn vô tình xóa imagemagick@6hoặc chưa bao giờ cài đặt nó ở nơi đầu tiên.


Ôi! Cảm ơn bạn rất nhiều vì liên kết đó. Tôi đã lãng phí gần một nửa ngày làm việc của mình để cố gắng khắc phục điều này.
kalehv

14
Lưu ý rằng hình ảnh @ 6 chỉ là keg nên bạn sẽ cần buộc liên kết. brew install imagemagick@6 && brew link imagemagick@6 --forceđã giải quyết nó cho tôi
Darren Cheng

1
Tuyệt vời, chúc mừng! Điều này làm việc cho tôi:brew install --force imagemagick@6 && brew link imagemagick@6 --force
Bella

1
Có, cài đặt phiên bản trước (6x) chắc chắn sẽ sửa nó. Vấn đề là cấu trúc thư mục của các tệp hình ảnh đã thay đổi trong phiên bản 7x. Và trong khi cài đặt đá quý, nó giả định cấu trúc thư mục mà 6x có
Prakash Raman

Thật không may là quay lại với fantemagick @ 6 không hiệu quả với tôi. Ngay cả sau khi cài đặt lại và tải lại, tôi vẫn nhận được thông báo này khi cố gắng cài đặt 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

macOs Sierra:

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

1
-1 bởi vì bạn buộc liên kết không có lý do và cũng không nói cho ai biết tại sao đây là một ý tưởng tồi để bắt đầu. Xem câu trả lời của tôi để thực hiện "đúng" theo nghĩa của Homebrew chứ không phải MacPorts.
mmlac

21

Trước hết hãy hủy liên kết hình ảnh đã cài đặt của bạn chưa được cài đặt đúng cách trong mac sierra cao mới nhất bằng cách sử dụng.

brew unlink imagemagick

sau đó cài đặt hình ảnh mới nhất6 bằng lệnh bên dưới

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

Sau đó cài đặt gem rmagick bằng lệnh bên dưới

gem install rmagick 

Nó sẽ hoạt động hoàn toàn tốt.


16

yah cái này giải quyết vấn đề của tôi:

MacOS X Sierra:

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

14

Nhiều thứ đã thay đổi trong ImageMagick 7 giống như con đường này: include/.../wandwand/MagickWand.hđược gắn kết trong viên ngọc quý hiện tại. Trong trường hợp của tôi, không thể cập nhật đá quý vì dự án khá cũ. Vì vậy, tôi đã kết thúc việc cài đặt một phiên bản cũ hơn của ImageMagic.

Bạn có thể cài đặt phiên bản mới nhất từ ​​6.xx:

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

Bạn cũng có thể ghim nó cho usege sau: brew pin imagemagick


1
Làm việc cho tôi: Mac OS 10.12.X. Tôi đã cài đặt ImageMagick 7 trước và gặp sự cố khi cài đặt rmagick gem rails.
Simon Franzen

11

Một cái gì đó đã thay đổi với ImageMagick 7.0.4-4 đối với tôi. wand/MagickWand.hkhông thể tìm thấy nữa:

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

Tôi vẫn có ImageMagick 6.9.7-3 trên hệ thống của mình và đổi lại bằng

% 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

Sau đó tôi có thể cài đặt rmagickmà không gặp sự cố:

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

Bạn có thể tìm thấy bất kỳ giải pháp? Tôi đang gặp vấn đề tương tự với bạn.
Kemal Akkoyun

như tôi đã nói. chuyển trở lại để tưởng tượng 6,9 sửa nó cho tôi.
Holger Frohloff

1
Cảm ơn, tôi đã nhận nó và sửa nó, theo đề nghị của bạn. Nhưng những gì tôi đã cố gắng hỏi nếu bạn đã giải quyết nó bằng phiên bản ImageMagick mới nhất? Sau đó, tôi đã tìm thấy vấn đề liên quan github.com/rmagick/rmagick/issues/256 cũng đề nghị hạ cấp ImageMagick như bạn đã làm. Vì vậy, cảm ơn một lần nữa.
Kemal Akkoyun

Không có chi. Tôi chưa giải quyết vấn đề bằng phiên bản 7.x. Tôi đoán sẽ có một sửa chữa khá sớm. Chúng ta sẽ thấy. :)
Holger Frohloff

6

RMagick phụ thuộc vào phiên bản lỗi thời của hình ảnh, phiên bản 6. (xem bên dưới) Homebrew cung cấp gói này dưới dạng gói chỉ keg mà bạn có thể cài đặt với:

brew install imagemagick@6

Đầu ra bản dựng sẽ bao gồm phần Caveats (cũng có sẵn brew info imagemagick@6nếu bạn xóa đầu ra):

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

Thay vì lực liên kết, trong đó có khả năng gây ra các vấn đề với các phần mềm khác mà không hỗ trợ các phiên bản mới hơn của ImageMagick, bạn có thể sử dụng các gợi ý exports để làm cho viên ngọc RMagick đón phiên bản cũ trong khi nó được xây dựng:

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. Hãy giúp đóng góp cho nỗ lực nâng cấp nếu bạn biết Ruby và C!

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

cảm ơn vì những lời khuyên và đề xuất, thật không may, nó không giúp ích gì :-(
0x4a6f4672

1
Câu trả lời này là người duy nhất được đề cập pkg-configvà nó đã làm việc.
Jason Kim

pkg-config là chìa khóa thành công. Cảm ơn bạn rất nhiều.
Michael Johann

5

Tôi chưa có tiếng tăm khi để lại nhận xét này để cải thiện câu trả lời khác, nhưng câu trả lời của @ Evgeniy28 chỉ có hiệu quả với tôi trên Sierra sau khi cài đặt pkg-config, mặc định không được cài đặt trên máy Sierra mới.

Vì thế:

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

Sự thành công:

$ 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

Làm việc cho tôi, Sierra 10.12.6
Ivan Danci

5

Vui lòng làm theo bên dưới và thay đổi một số phần theo nhu cầu của bạn.

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

Cài đặt fantemagick phiên bản 6 vì phiên bản 7 không tương thích:

$ brew install imagemagick@6

Không nên liên kết - buộc phiên bản cũ hơn vì điều này sẽ thay đổi nhị phân trong đường dẫn của bạn và điều tốt brew doctorsẽ khiếu nại.

Tham khảo các tiêu đề và thư viện từ phiên bản 6 đã được cài đặt khi xây dựng phần mở rộng riêng của đá quý:

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

Lưu ý: Làm việc cho tôi mà không cho biết thư mục lib và bao gồm vì pkgconfig chịu trách nhiệm cho việc này.

Lưu ý: 6.9.10-14 là phiên bản mới nhất của fantemagick @ 6, nhưng hãy thoải mái thay đổi nếu bạn cần sử dụng một phiên bản khác


3

Đây là cách tôi giải quyết (sau rất nhiều lần thử và thất bại) trên macOS High Sierra 10.13.3 với Homebrew:

  1. có vẻ như RMagick 2.16.0 không tương thích với phiên bản mới nhất của ImageMagick (Phiên bản 7): http://wordsandmagic.com/2017/09/01/RMagick-2-16-0-Error-MagickWand
  2. Tôi đã gỡ cài đặt hình ảnh: brew uninstall imagemagick
  3. Sau đó, tôi đã cài đặt Imagemagick với công thức này: https://gist.github.com/JagdeepSingh/4b03cbables16cc0bc729bbc6d275402d3
  4. gem install rmagick

Nếu bạn đã cài đặt một phiên bản cũ Imagemagick, thì nó sẽ hoạt động: https://stackoverflow.com/a/41674363


2

tại phiên bản 7.0.7-1, bạn có thể tạo một liên kết tượng trưng, ​​nhưng quá trình biên dịch sẽ thất bại sau này.

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

2

Không cần phải liên kết hoặc hủy liên kết bất cứ điều gì, làm theo các hướng dẫn từ tập lệnh cài đặt brew giúp:

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

Có lỗi tương tự đối với việc xây dựng hình ảnh alpine 3.9. Nó đi kèm với ImageMagick 7.0.8.38-r0

Để khắc phục rằng bạn sử dụng alpine 3.5 với ImageMagick 6.9.6.8-r1 :

FROM alpine:3.5

Hoặc cài đặt ImageMagick 6.9.6.8-r1 với kho lưu trữ gói cho 3.5:

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

Có một vấn đề mở trong repo rmagick liên quan đến các bản dựng không thành công cho ImageMagick 7.0.x. Vì vậy, hy vọng nó sẽ được sửa chữa sớm.


0

Đã xảy ra sự cố nghiêm trọng trên hệ thống của tôi, đến nỗi nó đã bị lỗi hoàn toàn, nhưng cuối cùng tôi đã có thể cài đặt lại RMagick cho Ruby 1.8.7 sau khi tôi cài đặt

Việc cài đặt phiên bản Ruby mới với RVM rvm install 1.8.7cũng đã cài đặt trình biên dịch GCC mới: nó đã gỡ bỏ phiên bản GCC cũ 4.6 và cài đặt phiên bản GCC 4.9. Rõ ràng GCC đã không thể tìm thấy các tiêu đề phù hợp mặc dù pkg-config.


0

Tôi giải thích đầy đủ quá trình cài đặt trong cài đặt ImageMagick tính bằng centos .

dù sao đi nữa ...
sau khi cài đặt Cài đặt thư viện PHP Imagick & ImageMagick-devel & ImageMagick như bên dưới:

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

đi đến / usr / bao gồm

cd /usr/include

Quan trọng: sao chép thư mục ImageMagick từ "/ usr / include" sang "/ usr / local / include" cho ImageMagick tìm "MagickWand.h"

Tôi đã thử nghiệm thay đổi này trên fantick-3.4.3 (ImageMagick-7) và centos 6.5 và php56 và hoạt động hoàn hảo ...

Nếu bạn đã cài đặt "ImageMagick" nhiều lần, trước tiên hãy xóa tất cả chúng và tìm các thư mục "ImageMagick" & "fantick" và xóa tất cả chúng và tiếp tục quá trình cài đặt với thay đổi này.

Sử dụng lệnh sau để tìm tệp hoặc thư mục:

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

và tiếp tục cài đặt của bạn
trước các dòng bên dưới đừng quên: đi tới "php.ini" tìm "vô hiệu hóa" và dọn dẹp "Proc_open, popen, Proc_close" vì bạn có thể tưởng tượng cần các chức năng này, sau khi cài đặt xong, bạn có thể thêm chức năng này vào " vô hiệu hóa "trên tập tin" php.ini ".

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

Chúc may mắn...


0

Đối với phiên bản Ubuntu> 12 và không sử dụng homebrew,

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

Nếu bạn đang nhận tệp '7z' thay vì tệp 'tar.gz' trong liên kết wget, thì

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

Sau đó, bạn có thể tiếp tục gói của bạn cho RMagick.


-1

Trước tiên, bạn không cần phải gỡ cài đặt hình ảnh nếu nó đã được cài đặt 6.x, như hiển thị bên dưới. Bạn có thể thấy "chính" hiện tại 7.0.7-8nhưng 6.9.1-10vẫn còn đó.

$ 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

Nếu bạn không có phiên bản 6.x cũ, thì hãy cài đặt hình ảnh @ 6.

Thứ hai, không bắt buộc hình ảnh liên kết , đặc biệt là không 6. EDIT: Xem
Bạn cần đặt PKG_CONFIG_PATH ngoài các cờ --with-opt- *.

Điều này hoạt động với tôi trên High Sierra với thiết lập pha đã nói ở trên trên 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/

Xây dựng tài liệu ri thất bại, nhưng đó là không quan trọng.

: Xây dựng công trình, con đường dylib mà RMagick đang tìm kiếm là sai. Nâng Issue # 278 để làm rõ nếu điều này có thể được cố định. Mặt khác, symlinking thủ công của libMagickWand vv là cần thiết. Vẫn có thể an toàn hơn để liên kết thủ công các thư viện cụ thể hơn brew link --forcemặc dù.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.