我在安装ruby gems时遇到以下错误。我正在使用Ubuntu
Installing json (1.7.3) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from extconf.rb:1:in `<main>'
Gem files will remain installed in /var/lib/gems/1.9.1/gems/json-1.7.3 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/json-1.7.3/ext/json/ext/parser/gem_make.out
An error occured while installing json (1.7.3), and Bundler cannot continue.
Make sure that `gem install json -v '1.7.3'` succeeds before bundling.
我刚看到这个链接,不知道如何处理ubuntu上的devkit * .exe文件。
答案 0 :(得分:6)
您缺少ruby-dev或ruby-1.9-dev软件包,如this stackoverflow question中所述。首先安装开发包文件,然后尝试安装gem。
答案 1 :(得分:1)
我遇到了同样的问题,但这些修复都没有奏效。
这是有效的。似乎Ubuntu的.bashrc在顶部附近有这条线:
# If not running interactively, stop here.
[ -z "$PS1" ] && return
正如评论所暗示的那样,停在那里。 Capistrano以非交互方式执行命令,因此当它运行.bashrc时,文件的其余部分永远不会被获取。
我的RVM线位于此下方,因此没有正确设置环境以使capistrano捆绑。
这些行应该 上一行:
[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"
希望这有助于某人。