AKW*_*KWF 12 ruby rubygems bundler ruby-on-rails-3.1
它似乎在寻找libmagic.so.1文件.我有那个档案.它位于/ usr/lib64中.我没有以root用户身份运行此安装.
我也在使用rvm和Bundler.这是我的"bundle"命令的结果,当它到达我的Gemfile中的ruby-filemagic行时:
[server@mine 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.
Run Code Online (Sandbox Code Playgroud)
更新:
以下是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 */
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何做到这一点.
小智 18
在Ubuntu 12.04上有同样的问题.刚刚libmagic-dev通过以下命令安装了包:
sudo apt-get install libmagic-dev
Run Code Online (Sandbox Code Playgroud)
我需要这样做:
yum install file-devel
Run Code Online (Sandbox Code Playgroud)
这显然包含了filemagic ruby gem为了编译而需要的libmagic头文件.之后它就像一个冠军.