2016-01-22 47 views
0

首先,我尝试: gem install railsRubyGems的建筑原生扩展Fedora的失败23

它产生:使用sudo dnf install ruby-devel还与rvm requirements试过

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

    /usr/bin/ruby 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) 
    --help 
    --clean 
/usr/share/ruby/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError) 
You have to install development tools first. 
    from /usr/share/ruby/mkmf.rb:571:in `block in try_compile' 
    from /usr/share/ruby/mkmf.rb:522:in `with_werror' 
    from /usr/share/ruby/mkmf.rb:571:in `try_compile' 
    from extconf.rb:80:in `nokogiri_try_compile' 
    from extconf.rb:87:in `block in add_cflags' 
    from /usr/share/ruby/mkmf.rb:619:in `with_cflags' 
    from extconf.rb:86:in `add_cflags' 
    from extconf.rb:336:in `<main>' 


Gem files will remain installed in /home/hagoth/.gem/ruby/gems/nokogiri-1.6.7.2 for inspection. 
Results logged to /home/hagoth/.gem/ruby/gems/nokogiri-1.6.7.2/ext/nokogiri/gem_make.out 

我已经安装了开发工具和我花了过去五个小时左右在线尝试其他晦涩难懂的解决方案。他们似乎都没有工作。有一些简单明显的解决方案,我错过了吗?我很确定依赖关系在那里。虽然我可能是错的。

运行32位版本的Fedora 23如果这意味着什么。

更新:

/home/username/.gem/ruby/gems/nokogiri-1.6.7.2/ext/nokogiri/mkmf.log内容是:

"gcc -o conftest -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -D_FILE_OFFSET_BITS=64 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -march=i686 -mtune=atom -fasynchronous-unwind-tables -fPIC conftest.c -L. -L/usr/lib -L. -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -fstack-protector -rdynamic -Wl,-export-dynamic -m32 -lruby -lpthread -ldl -lcrypt -lm -lc " 
gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory 
checked program was: 
/* begin */ 
1: #include "ruby.h" 
2: 
3: int main(int argc, char **argv) 
4: { 
5: return 0; 
6: } 
/* end */ 
+0

我知道在Stackoverflow上有很多这种性质的问题。我见过的大多数人都没有解决我的问题,并与解决依赖关系有关。 – 0112

+0

说'检查mkmf.log文件以获得更多细节。“_that_说什么? – mattdm

+0

@mattdm加入问题 – 0112

回答

5

我不是很肯定为什么包的构建脚本正在寻找特定文件无法找到,但它是由redhat-rpm-config包提供的。我很确定这应该在Fedora Workstation上默认。在任何情况下,因为你是你的系统上开发软件,我建议确保以下组安装:

sudo dnf groupinstall development-tools rpm-development-tools c-development 

,将解决这方面的问题,并确保你有其他的基本的“原生”建立安装的基础设施工具。

+1

我其实刚刚解决了它。使用此链接的信息:https://developer.fedoraproject.org/tech/languages/ruby/gems-installation.html – 0112

+0

它有一种效果。我会把它交给你。 – 0112

-1

我除了@mattdm的答案,它解决了失败的:

vagrant plugin install vagrant-livbirt

原因有一些包的依赖问题。所以使用上述命令将解决这个问题!