capistrano部署无法安装nokogiri

时间:2014-04-13 09:49:29

标签: ruby-on-rails ubuntu capistrano nokogiri

我的cap production deploy在Ubuntu 12.04盒子上安装nokogiri失败了:

DEBUG [6f355ce8]    Extracting libxml2-2.8.0.tar.gz into tmp//ports/libxml2/2.8.0... OK
DEBUG [6f355ce8]    Running 'configure' for libxml2 2.8.0... ERROR, review 'tmp//ports/libxml2/2.8.0/configure.log' to see what happened.
DEBUG [6f355ce8]    *** extconf.rb failed ***
DEBUG [6f355ce8]    Make sure that `gem install nokogiri -v '1.6.1'` succeeds before bundling.

我检查了所说的日志,它提到找不到C编译器。我试图在nokogiri网站上安装ubuntu的依赖项,系统说它们已经安装完毕。

我还在服务器上尝试了gem install nokogiri -v '1.6.1'并且成功没有任何问题,gem list显示它已安装在服务器上。

我发现了一个类似的问题,建议将此行添加到production.rb

set :bundle_env_variables, { 'NOKOGIRI_USE_SYSTEM_LIBRARIES' => 1 }

将错误更改为更具体:

DEBUG [1e93b004]    /usr/local/rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/mkmf.rb:430:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
DEBUG [1e93b004]    You have to install development tools first.

但是试图通过以下方式安装它们:

sudo apt-get install libxslt-dev libxml2-dev

说已经安装了所有东西 - 再次,nokogiri在deploy任务之外安装得很好。

1 个答案:

答案 0 :(得分:1)

我错过了ubuntu的一个ruby dev依赖项:http://nokogiri.org/tutorials/installing_nokogiri.html

此外,由于某些原因,此服务器仅授予root访问某些nokogiri依赖项的权限,我必须chmod为我的部署用户。