2017-06-08 36 views
0

我试图安装Rails安装引入nokogiri使用Rails。 Ruby 2.3.1p112已经安装。在安装过程中的Rails,一旦取引入nokogiri完成后,我得到的错误如下:如何通过在Ubuntu 16.04的新版本使用</p> <pre><code>sudo gem install rails </code></pre> <p>在Ubuntu 16.04

Fetching: nokogiri-1.8.0.gem (100%) 
Building native extensions. This could take a while... 
ERROR: Error installing rails: 
     ERROR: Failed to build gem native extension. 

    current directory: /var/lib/gems/2.3.0/gems/nokogiri-1.8.0/ext/nokogiri 
/usr/bin/ruby2.3 -r ./siteconf20170608-1635-1vnwqbn.rb extconf.rb 
checking if the C compiler accepts ... *** 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_BASE_NAME)2.3 
     --help 
     --clean 
/usr/lib/ruby/2.3.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError) 
You have to install development tools first. 
     from /usr/lib/ruby/2.3.0/mkmf.rb:571:in `block in try_compile' 
     from /usr/lib/ruby/2.3.0/mkmf.rb:522:in `with_werror' 
     from /usr/lib/ruby/2.3.0/mkmf.rb:571:in `try_compile' 
     from extconf.rb:138:in `nokogiri_try_compile' 
     from extconf.rb:162:in `block in add_cflags' 
     from /usr/lib/ruby/2.3.0/mkmf.rb:629:in `with_cflags' 
     from extconf.rb:161:in `add_cflags' 
     from extconf.rb:407:in `<main>' 

To see why this extension failed to compile, please check the mkmf.log which can be found here: 

    /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/nokogiri-1.8.0/mkmf.log 

extconf failed, exit code 1 

Gem files will remain installed in /var/lib/gems/2.3.0/gems/nokogiri-1.8.0 for inspection. 
Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/nokogiri-1.8.0/gem_make.out 

这是mkmf.log的内容:

"gcc -o conftest -I/usr/include/x86_64-linux-gnu/ruby-2.3.0 -I/usr/include/ruby-2.3.0/ruby/backward -I/usr/include/ruby-2.3.0 -I. -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fPIC conftest.c -L. -L/usr/lib/x86_64-linux-gnu -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic  -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm -lc " 
checked program was: 
/* begin */ 
1: #include "ruby.h" 
2: 
3: int main(int argc, char **argv) 
4: { 
5: return 0; 
6: } 
/* end */ 

我不知道什么是错的。日志没有帮助,我已经尝试安装libgmp-dev,ruby-dev,zlib1g-devliblzma-dev,因为他们被建议给在Nokogiri宝石安装期间出错的人。

+1

任何使用Linux上的RVM并具有试图安装Rails问题,也看到https://stackoverflow.com/q/29317640/128421。 –

回答

6

在尝试查找缺少的依赖项一段时间后,我在mkmf.log中运行了gcc命令,以防万一编译错误消息被省略。

原来我没有安装gcc。一旦我安装了它,我的安装只会遇到另一个类似的错误。最后,安装下面的依赖关系导致成功安装Rails。

请确保你有这些安装在运行gem install rails前:

sudo apt-get install gcc make zlib1g-dev sqlite3 
相关问题