Tôi đã biên dịch ImageMagick trên CentOS của mình và RMagick sẽ không cài đặt


16

Tôi đã cài đặt ImageMagick thông qua, (Sử dụng ImageMagick 6.7.3-7)

./configure --prefix=/usr && make && make install

Khi tôi cố gắng

gem install imagemagick

tôi có

Building native extensions.  This could take a while...
ERROR:  Error installing rmagick:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
checking for Ruby version >= 1.8.5... yes
checking for gcc... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.4.9... yes
checking for HDRI disabled version of ImageMagick... yes
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... no

Can't install RMagick 2.13.1. Can't find MagickWand.h.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/bin/ruby

Điều này bất chấp thực tế là MagickWand.h đã có trong hệ thống /usr/include/ImageMagick/wand/MagickWand.h. Vì vậy, câu hỏi là, làm thế nào để tôi thực sự có được trình biên dịch để tìm trong đó?

Câu trả lời:


26

Có vấn đề tương tự trên CentOS khi sử dụng mọi thứ mới nhất (kể từ tháng 12 năm 2011) và đã khắc phục nó bằng:

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"

trong tệp .bashrc của tôi để chọn MagickCore.pc, sau đó tạo hai liên kết tượng trưng:

ln -s /usr/local/include/ImageMagick/wand /usr/local/include/wand
ln -s /usr/local/include/ImageMagick/magick /usr/local/include/magick

Và voila, MagickWand.h đã được tìm thấy, MagickCore.pc đã được chọn ... đá quý được cài đặt thành công.

Tôi tưởng tượng một giải pháp khác là sửa đổi các tùy chọn cấu hình được cài đặt trong quá trình cài đặt ImageMagick, nhưng tôi không đủ sysadmin để biết rõ tùy chọn và vị trí phù hợp cho các tệp này là gì. Sau 45 phút loay hoay xung quanh, tôi không thể tìm ra nơi các tệp này được cho là tồn tại, sẽ được tự động chọn bởi hệ thống tạo cài đặt đá quý.

Chúc mừng!

EDIT: 2014-10-01

Chỉ cần làm điều này một lần nữa cho CentOS 7, và các lnlệnh trên không cần thiết. Tuy nhiên, tôi gặp phải một vấn đề trong đó tôi nhận được "Gói MagickCore không được tìm thấy trong đường dẫn tìm kiếm pkg-config." trên chạy sudo gem install rmagick.

Vấn đề là thiết lập lại môi trường trong / etc / sudoers. Sau khi chạy sudo visudođể chỉnh sửa tệp sudoers, tôi đã thêm vào Defaults env_keep += "PKG_CONFIG_PATH"phần thích hợp, cập nhật đường dẫn bảo mật để bao gồm / usr / local / bin, sau đó cài đặt hoạt động như một bùa mê.


Tôi đã có cùng một vấn đề trên RedHat 6 và giải pháp của bạn đã làm việc cho tôi. Cảm ơn nhiều!
Gọi

Tuyệt vời, điều này thậm chí hoạt động như một bùa mê trong sư tử núi! Tôi cần chạy tất cả các câu lệnh trên để rmagick gem được cài đặt.
Hendra Uzia

Đã thử điều này và đã nhận "/ usr / local / bin / Magick-config: line 41: pkg-config: lệnh không tìm thấy / usr / local / bin / Magick-config: line 47: pkg-config: lệnh không tìm thấy / usr / local / bin / Magick-config: dòng 50: pkg-config: lệnh không tìm thấy / usr / local / bin / Magick-config: dòng 53: pkg-config: lệnh không tìm thấy "
Jonny

13

ImageMagick thường sẽ đặt MagickCore tại đây:

/usr/local/lib/pkgconfig/MagickCore.pc

Nếu bạn không ở đó, bạn có thể tìm thấy nó như thế này:

find / -name MagickCore.pc

Bây giờ bạn biết đường dẫn pkgconfig của bạn:

/usr/local/lib/pkgconfig

Đặt môi trường khi bạn cài đặt đá quý:

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick

Cảm ơn! Làm việc cho tôi trên hình ảnh Bitnami Ubuntu 12.04 ..
JD

Cảm ơn! tương tự ở đây đã hoạt động: find / usr / -name MagickCore.pc PKG_CONFIG_PATH = / usr / lib / x86_64-linux-gnu / pkgconfig / bundle
MegaTux

7

Đối với CentOS, tôi đã giải quyết vấn đề này bằng cách cài đặt gói "ImageMagick-devel":

yum install ImageMagick-devel


1
đây là câu trả lời hay nhất :)
kovpack

2

Khóa nằm trong đầu ra cấu hình có ghi "kiểm tra đũa / MagickWand.h" - rõ ràng thư mục ImageMagick không được mong đợi trong / usr / include, có nghĩa là bạn cần phải di chuyển nội dung của thư mục đó lên một cấp hoặc bạn cần phải cài đặt ImageMagick khác nhau. Đặt nội dung trực tiếp vào / usr nói chung là một ý tưởng tồi cho bất kỳ thứ gì không được cung cấp bởi chính hệ thống - nếu bạn tách riêng tất cả những thứ bạn thêm vào / usr / local thay vào đó và để lại / usr một mình, bạn sẽ thấy hệ thống dễ dàng hơn nhiều cũng quản trị vì bạn sẽ có thể (rất lâu sau khi bạn quên điều này) tìm hiểu những gì bạn đã thêm so với những gì đi kèm với hệ thống.


Lời khuyên tốt, mặc dù bạn vẫn chưa trả lời câu hỏi làm thế nào bạn có thể buộc trình biên dịch tìm trong các thư mục nhất định cho tệp tiêu đề.
Ken Li

3
Chà, tất cả các lệnh của trình biên dịch đều xảy ra thông qua lệnh gem (bạn buộc trình biên dịch tìm ở các vị trí thay thế bằng cờ -I, nhưng người dùng này không sử dụng trình biên dịch trực tiếp) và tốt nhất là thiết lập mọi thứ bằng lệnh configure lòng tốt xảy ra mà không phải thay đổi bất cứ điều gì khác. Sử dụng biến env PKG_CONFIG_PATH để cấu hình tiếp tục rít lên có thể thực hiện thủ thuật nếu có sẵn tệp MagickCore.pc. "find / usr -name MagickCore.pc" và sau đó xem nếu nó tồn tại, sau đó thêm các dir nó với "setenv PKG_CONFIG_PATH / path / to / nơi / tìm / tìm thấy / nó"
JKH

Tôi đã cập nhật PKG_CONFIG_PATH thành /Dir/to/where/found/MagickCore.pc và vẫn kết thúc với "Không thể cài đặt RMagick 2.13.1. Không thể tìm thấy MagickWand.h" .. bất kỳ đề xuất nào tại sao nó không thể được chọn và những gì khác tôi có thể thử .. Không chắc chắn làm thế nào để sử dụng tùy chọn -l?
p101

Hừm! Điều đó nên làm việc. Câu hỏi: Nếu bạn nhập ./mình - trợ giúp, nó có liệt kê bất kỳ tùy chọn cấu hình nào cho ImageMagick không? Nếu vậy, bạn có thể trỏ trực tiếp vào thư mục ImageMagick trong / usr / local từ tập lệnh cấu hình.
jkh

Thnx jkh .. Thật thú vị tôi đã không tìm thấy cấu hình trong rmagick, vì vậy có lẽ bạn có nghĩa là tưởng tượng. Tôi đã tạo một câu hỏi mới ở đây stackoverflow.com/questions/9561386/rmagick-installation . Sẽ đánh giá cao nếu bạn có thể xem. Cảm ơn!
p101


1

Có thể bạn đang cài đặt ImageMagick phiên bản 7.xx sẽ tạo các tên thư mục khác nhau trong usr/lib/local/include/ImageMagick7.x.xthư mục của bạn . Ví dụ

Trong phiên bản ImageMagick6.xx chúng tôi đã magick, wandtên thư mục, nơi mà trong phiên bản ImageMagick7.xx đã được đặt tên này MagickCore, MagickWand. Vì vậy, cập nhật này gây ra vấn đề trong một số cài đặt đá quý như ở đây. Đang sử dụng magick/some_header.hhoặc wand/some_header.h(Có nghĩa là chúng không được cập nhật với phiên bản 7.xx ImageMagick mới). Đó là lý do tại sao chúng tôi gặp lỗi này:

`` `

checking for outdated ImageMagick version (<= 6.4.9)... no
checking for presence of MagickWand API (ImageMagick version >= 6.9.0)... no
 .... 
checking for wand/MagickWand.h... no

`` `

và trong tệp nhật ký một cái gì đó như thế này:

error: 'MagickCore/method-attribute.h' file not found
#include "MagickCore/method-attribute.h"
         ^

Giải pháp

Cài đặt phiên bản ImageMagick6.xx trong hệ thống của bạn từ trang web chính thức: https://www.imagemagick.org/doad/ và cài đặt nó bằng lệnh này (sau khi giải nén zip / tar):

./configure
make 
make install

Sau đó làm

gem install rmagick

Nó sẽ làm việc.


Tôi đã phải chạy sudo ldconfig /usr/local/libsausudo make install
sequielo

0
        1) install by installer

http://cactuslab.com/imagemagick/

2) thử cài đặt rmagick

nếu kiểm tra đũa / MagickWand.h ... không có
loại

mdfind MagickWand.h

tìm một số thứ như

/Users/user/ImageMagick-6.8.3/include/ImageMagick-6/wand/MagickWand.h

và gõ vào thiết bị đầu cuối

C_INCLUDE_PATH=/Users/user/ImageMagick-6.8.3/include/ImageMagick-6/ gem install rmagick

nếu, sau đó bạn có lỗi này (vì đã có) "Không tìm thấy gói MagickCore trong đường dẫn tìm kiếm pkg-config."

kiểu

mdfind MagickCore.pc

tìm một số thứ như /opt/ImageMagick/lib/pkgconfig/MagickCore.pc

và cuối cùng trong loại thiết bị đầu cuối:

PKG_CONFIG_PATH=/opt/ImageMagick/lib/pkgconfig/ gem install rmagick

1
Lệnh mdfindnày là lệnh duy nhất của MacOSX, nó không tồn tại trên các biến thể của Linux.
slm

như @slm đã nói, vui lòng viết lại câu trả lời của bạn để nó giúp QA.
Lorenzo Von Matterhorn

0

Tôi đã cài đặt redmine theo sư tử núi Mac OS X ...

Trình cài đặt không thành công trên rmagick ...

Sau nhiều rắc rối, nó hoạt động bằng cách cài đặt "homebrew", nhưng KHÔNG cài đặt rmagick thông qua homebrew. Thay vào đó tôi đã cài đặt "pkg-config" thông qua homebrew, vì rmagick đã phàn nàn về điều đó.

Các lệnh:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
brew doctor
brew install pkg-config
sudo gem install rmagick

Sau đó redmine tiếp tục cài đặt mà không có vấn đề.



0

Trước khi cài đặt rmagic, bạn nên cài đặt hình ảnh trên hệ thống của mình, cài đặt hình ảnh thay đổi tùy theo hệ điều hành của bạn, sau đó bạn phải cài đặt một số thư viện hỗ trợ nội bộ ruby ​​để hợp nhất thư viện xử lý hình ảnh trên hệ thống của bạn. Để cài đặt các thư viện đó, hãy sử dụng lệnh sau Đối với linux: sudo apt-get install libmagickwand-dev fantemagick For Centos: yum install libmagickwand-dev fantemagick

sau đó bạn phải cài đặt gem rmagick bằng lệnh sau: gem install rmagick Nó hoạt động với tôi và tôi đã cài đặt rmagick thành công ...


0

Gần nhất với câu trả lời @ Irongaze.com! Trong Arch Linux của tôi, tôi đã tạo ra hai liên kết tượng trưng này:

$ sudo ln -s /usr/include/ImageMagick-6/wand /usr/include/wand
$ sudo ln -s /usr/include/ImageMagick-6/magick /usr/include/magick

Sau đó chạy bundlelại và rmagickđược sửa chữa cài đặt.

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.