在服务器上(我不是root用户),我已将libxslt编译为/home/foo/sw
。
所以我可以这样安装我的宝石:
gem install nokogiri -- --with-xslt-dir=/home/foo/sw
然而,同样的技术不适用于rake:
$ rake gems:build -- --with-xslt-dir=/home/foo/sw
(in /home/foo/fooapp/releases/20100915071151)
如果我尝试强制构建,我会收到路径错误:
$ rake gems:build:force -- --with-xslt-dir=/home/foo/sw
(in /home/foo/fooapp/releases/20100915071151)
rake aborted!
ERROR: Failed to build gem native extension.
/usr/bin/ruby extconf.rb
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for xmlParseDoc() in -lxml2... yes
checking for xsltParseStylesheetDoc() in -lxslt... no
-----
libxslt is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
如何使用rake(以及Capistrano)进行此操作?
答案 0 :(得分:0)
没办法。首先,rake使用env,如params“rake .... RAILS_ENV = production”。 其次宝石:构建rake任务不会传递任何额外的参数
Rails::GemBuilder.new(specification, gem_dir).build_extensions
在rails / railties / lib / tasks / gems.rake。
解决方案是编写自己的任务或使用bundler。