我的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
任务之外安装得很好。
答案 0 :(得分:1)
我错过了ubuntu的一个ruby dev依赖项:http://nokogiri.org/tutorials/installing_nokogiri.html
此外,由于某些原因,此服务器仅授予root
访问某些nokogiri依赖项的权限,我必须chmod
为我的部署用户。