2012-04-26 27 views
10

Dường như nó đang tìm kiếm tệp libmagic.so.1. Tôi có tập tin đó. Nó nằm trong/usr/lib64. Tôi không chạy cài đặt này với tư cách là người dùng root.Gặp khó khăn khi cài đặt đá quý ruby-filemagic trên máy chủ RHEL6 mới

Tôi cũng đang sử dụng rvm và Bundler. Đây là kết quả của lệnh "bó" của tôi, khi nó được cho là dòng ruby-filemagic trong Gemfile tôi:

[[email protected] ext]$ ruby extconf.rb --with-magiclib 
checking for magic_open() in -ltrue... no 
*** ERROR: missing required library to compile this module 
*** 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. 

UPDATE:

Dưới đây là kết quả của mkmf.log:

have_library: checking for magic_open() in -ltrue... -------------------- no 

"gcc -o conftest -I. -I/usr/local/rvm/rubies/ruby-1.8.7-p358/lib/ruby/1.8/x86_64-linux -I. -g -O2 -fPIC conftest.c -L. -L/usr/local/rvm/rubies/ruby-1.8.7-p358/lib -Wl,-R/usr/local/rvm/rubies/ruby-1.8.7-p358/lib -L. -rdynamic -Wl,-export-dynamic  -lruby-static -ltrue -lrt -ldl -lcrypt -lm -lc" 
conftest.c: In function ‘t’: 
conftest.c:3: error: ‘magic_open’ undeclared (first use in this function) 
conftest.c:3: error: (Each undeclared identifier is reported only once 
conftest.c:3: error: for each function it appears in.) 
checked program was: 
/* begin */ 
1: /*top*/ 
2: int main() { return 0; } 
3: int t() { void ((*volatile p)()); p = (void ((*)()))magic_open; return 0; } 
/* end */ 

"gcc -o conftest -I. -I/usr/local/rvm/rubies/ruby-1.8.7-p358/lib/ruby/1.8/x86_64-linux -I. -g -O2 -fPIC conftest.c -L. -L/usr/local/rvm/rubies/ruby-1.8.7-p358/lib -Wl,-R/usr/local/rvm/rubies/ruby-1.8.7-p358/lib -L. -rdynamic -Wl,-export-dynamic  -lruby-static -ltrue -lrt -ldl -lcrypt -lm -lc" 
/usr/bin/ld: cannot find -ltrue 
collect2: ld returned 1 exit status 
checked program was: 
/* begin */ 
1: /*top*/ 
2: int main() { return 0; } 
3: int t() { magic_open(); return 0; } 
/* end */ 

Tôi không thể biết phải làm gì để thực hiện công việc này.

+0

Có gì trong 'mkmf.log'? – Linuxios

+0

Cập nhật câu hỏi của tôi ở trên – AKWF

Trả lời

8

tôi cần phải làm:

yum install file-devel 

Đó dường như chứa các tập tin tiêu đề libmagic rằng ruby ​​đá quý filemagic cần thiết để biên dịch. Nó hoạt động như một nhà vô địch sau đó.

17

Đã xảy ra sự cố tương tự trên Ubuntu 12.04. Chỉ cần cài đặt gói libmagic-dev thông qua lệnh sau:

sudo apt-get install libmagic-dev 
+2

để cụ thể: 'sudo apt-get install libmagic-dev' – mmell

1

Tôi gặp sự cố tương tự về OpenSuse 11.3. Điều này đã giúp:

zypper install file-devel 
9

Trên máy Mac, sử dụng homebrew:

sudo brew install libmagic 
+1

Hey, tôi vẫn nhận được' kiểm tra cho magic_open() trong -lmagic ... không có ý tưởng nào? – AJP

+0

Trước tiên hãy chắc chắn rằng libmagic thực sự đã được cài đặt đúng cách. Hãy thử 'ls -al/usr/local/include/| grep magic' và xác minh rằng' magic.h' là có) – troelskn

Các vấn đề liên quan