Saya telah mengkompilasi ImageMagick pada CentOS saya, dan RMagick tidak mau menginstal

16

Saya menginstal ImageMagick melalui, (Menggunakan ImageMagick 6.7.3-7)

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

Ketika saya mencoba

gem install imagemagick

saya mendapat

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

Ini terlepas dari kenyataan bahwa MagickWand.h sudah ada dalam sistem di /usr/include/ImageMagick/wand/MagickWand.h. Jadi pertanyaannya adalah, bagaimana cara mendapatkan kompiler untuk melihatnya?

Ken Li
sumber

Jawaban:

26

Punya masalah yang sama pada CentOS menggunakan semuanya terbaru (per Des 2011), dan memperbaikinya dengan:

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

di file .bashrc saya untuk mengambil MagickCore.pc, lalu membuat dua symlink:

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

Dan voila, MagickWand.h ditemukan, MagickCore.pc diambil ... permata berhasil diinstal.

Saya membayangkan solusi lain adalah memodifikasi opsi konfigurasi yang ditetapkan selama instalasi ImageMagick, tapi saya tidak cukup sysadmin untuk menjadi jelas apa pilihan dan lokasi yang tepat untuk file-file ini. Setelah 45 menit mencari-cari, saya tidak tahu di mana file-file ini seharusnya tinggal, untuk secara otomatis diambil oleh sistem make install permata.

Bersulang!

EDIT: 2014-10-01

Lakukan ini lagi untuk CentOS 7, dan lnperintah di atas tidak diperlukan. Namun, saya mengalami masalah di mana saya mendapat "Paket MagickCore tidak ditemukan di jalur pencarian pkg-config." saat berlari sudo gem install rmagick.

Masalahnya adalah lingkungan diatur ulang di / etc / sudoers. Setelah menjalankan sudo visudountuk mengedit file sudoers, saya menambahkan Defaults env_keep += "PKG_CONFIG_PATH"ke bagian yang sesuai, memperbarui jalur aman untuk menyertakan / usr / local / bin, dan kemudian menginstal bekerja seperti pesona.

Irongaze.com
sumber
Saya mengalami masalah yang sama pada RedHat 6 dan solusi Anda berhasil untuk saya. Terima kasih banyak!
Callmeed
Luar biasa, ini bahkan bekerja seperti pesona di singa gunung! Saya perlu menjalankan semua pernyataan di atas untuk menginstal rmagick gem.
Hendra Uzia
Mencoba ini dan mendapatkan "/ usr / local / bin / Magick-config: baris 41: pkg-config: perintah tidak ditemukan / usr / local / bin / Magick-config: baris 47: pkg-config: perintah tidak ditemukan / usr / local / bin / Magick-config: line 50: pkg-config: perintah tidak ditemukan / usr / local / bin / Magick-config: baris 53: pkg-config: perintah tidak ditemukan "
Jonny
13

ImageMagick biasanya akan menempatkan MagickCore di sini:

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

Jika milik Anda tidak ada di sana, Anda dapat menemukannya seperti ini:

find / -name MagickCore.pc

Anda sekarang tahu jalur pkgconfig Anda:

/usr/local/lib/pkgconfig

Atur lingkungan saat Anda memasang permata:

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig gem install rmagick
joelparkerhenderson
sumber
Terima kasih! Bekerja untuk saya pada gambar Bitnami Ubuntu 12,04 ..
JD
Terima kasih! serupa di sini berfungsi: find / usr / -name MagickCore.pc PKG_CONFIG_PATH = / usr / lib / x86_64-linux-gnu / pkgconfig / bundle
MegaTux
7

Untuk CentOS, saya memecahkan masalah ini dengan menginstal paket "ImageMagick-devel":

yum install ImageMagick-devel

Munish
sumber
1
ini adalah jawaban terbaik :)
kovpack
2

Kuncinya ada di konfigurasikan keluaran di mana dikatakan "memeriksa tongkat / MagickWand.h" - jelas direktori ImageMagick tidak diharapkan di / usr / include, yang berarti Anda perlu memindahkan isi direktori itu ke atas atau Anda perlu menginstal ImageMagick itu sendiri secara berbeda. Memasukkan barang secara langsung ke / usr umumnya adalah ide buruk untuk apa pun yang tidak disediakan oleh sistem itu sendiri - jika Anda memisahkan semua hal yang Anda tambahkan di / usr / lokal dan membiarkan / usr sebagian besar sendirian, Anda akan menemukan sistem lebih mudah untuk mengelola juga karena Anda akan dapat (lama setelah Anda lupa tentang ini) mencari tahu apa yang Anda tambahkan vs apa yang datang dengan sistem.

jkh
sumber
Saran yang bagus, meskipun Anda masih belum menjawab pertanyaan bagaimana Anda dapat memaksa kompiler untuk mencari di direktori tertentu untuk file header.
Ken Li
3
Ya, pemanggilan kompiler semua terjadi melalui perintah gem (Anda memaksa kompiler untuk mencari di lokasi alternatif dengan flag -I, tetapi pengguna ini tidak menggunakan kompilator secara langsung) dan yang terbaik untuk mengatur segalanya dengan perintah configure seperti bahwa kebaikan terjadi tanpa harus mengubah apa pun. Menggunakan variabel env PKG_CONFIG_PATH yang mengkonfigurasi terus melengking tentang mungkin melakukan trik jika ada file MagickCore.pc tersedia. "find / usr -name MagickCore.pc" dan kemudian lihat apakah ada, kemudian tambahkan dir itu dengan "setenv PKG_CONFIG_PATH / path / ke / di mana / temukan / temukan / itu"
jkh
Saya memperbarui PKG_CONFIG_PATH ke /Dir/to/where/found/MagickCore.pc dan masih berakhir dengan "Tidak dapat menginstal RMagick 2.13.1. Tidak dapat menemukan MagickWand.h" .. ada saran mengapa tidak diambil. dan apa lagi yang bisa saya coba .. Tidak yakin bagaimana cara menggunakan opsi -l?
p101
Hmmmm! Itu seharusnya bekerja. Pertanyaan: Jika Anda mengetik ./configure --help, apakah ini mencantumkan opsi konfigurasi apa pun untuk ImageMagick secara spesifik? Jika demikian, Anda mungkin bisa mengarahkan langsung ke direktori ImageMagick di / usr / local dari skrip configure.
jkh
Thnx jkh .. Menariknya saya tidak menemukan configure di rmagick, jadi mungkin maksud Anda imagemagick. Saya telah membuat pertanyaan baru di sini stackoverflow.com/questions/9561386/rmagick-installation . Sangat menghargai jika Anda bisa melihatnya. Terima kasih!
p101
1

Mungkin Anda menginstal ImageMagick versi 7.xx yang akan menghasilkan nama folder berbeda di usr/lib/local/include/ImageMagick7.x.xfolder Anda . Misalnya

Dalam versi ImageMagick6.xx kita telah magick, wandbernama folder, di mana dalam versi ImageMagick7.xx telah bernama ini MagickCore, MagickWand. Jadi pembaruan ini menyebabkan masalah pada beberapa instalasi permata seperti di sini. Yang menggunakan magick/some_header.hatau wand/some_header.h(Berarti mereka tidak diperbarui dengan versi 7.xx ImageMagick baru). Itulah sebabnya kami mendapatkan kesalahan ini:

`` `

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

`` `

dan dalam file log sesuatu seperti ini:

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

Larutan

Instal versi ImageMagick6.xx di sistem Anda dari situs resmi: https://www.imagemagick.org/download/ dan instal menggunakan perintah ini (setelah mengekstrak zip / tar):

./configure
make 
make install

Lalu lakukan

gem install rmagick

Itu akan berhasil.

Shekhar Prasad Rajak
sumber
Saya harus menjalankan sudo ldconfig /usr/local/libaftersudo make install
sequielo
0
        1) install by installer

http://cactuslab.com/imagemagick/

2) coba permata instal rmagick

jika memeriksa tongkat / MagickWand.h ... tidak ada
tipe

mdfind MagickWand.h

temukan beberapa hal seperti

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

dan ketik terminal

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

jika, setelah itu Anda memiliki kesalahan ini (karena memilikinya) "Paket MagickCore tidak ditemukan di jalur pencarian pkg-config."

Tipe

mdfind MagickCore.pc

temukan beberapa hal seperti /opt/ImageMagick/lib/pkgconfig/MagickCore.pc

dan akhirnya dalam jenis terminal:

PKG_CONFIG_PATH=/opt/ImageMagick/lib/pkgconfig/ gem install rmagick
Andrew
sumber
1
Perintah mdfindini hanya perintah MacOSX, tidak ada pada varian Linux.
slm
seperti yang dikatakan @slm, harap tulis ulang jawaban Anda sehingga membantu QA.
Lorenzo Von Matterhorn
0

Saya memasang redmine di bawah Mac OS X mountain singa ...

Pemasang gagal pada rmagick ...

Setelah banyak masalah, ini bekerja dengan menginstal "homebrew", tetapi TIDAK menginstal rmagick melalui homebrew. Sebaliknya saya menginstal "pkg-config" melalui homebrew, karena rmagick mengeluhkan hal itu.

Perintah:

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

Kemudian redmine terus menginstal tanpa masalah.

Jonny
sumber
0

Sebelum menginstal rmagic Anda harus menginstal imagic di sistem Anda, instalasi imagick bervariasi sesuai dengan sistem operasi Anda, Kemudian Anda harus menginstal beberapa perpustakaan yang secara internal mendukung ruby ​​untuk menggabungkan perpustakaan pemrosesan gambar pada sistem Anda. Untuk menginstal pustaka tersebut, gunakan perintah berikut untuk linux: sudo apt-get install libmagickwand-dev imagemagick For Centos: yum install libmagickwand-dev imagemagick

maka Anda harus menginstal gem rmagick dengan perintah berikut: gem install rmagick Ini berfungsi untuk saya dan saya menginstal rmagick dengan sukses ...

Amardeep Jadhav
sumber
0

Yang terdekat dengan jawaban @ Irongaze.com! Di Arch Linux saya, saya membuat dua tautan simbolik ini:

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

Kemudian jalankan bundlekembali dan rmagickdiperbaiki instalasinya.

Fernando Kosh
sumber