Передача опций настройки для граблей гемов: build - PullRequest
1 голос
/ 15 сентября 2010

На сервере (где я не являюсь пользователем root) я скомпилировал libxslt в /home/foo/sw.

, поэтому я могу установить свой гем следующим образом:

gem install nokogiri -- --with-xslt-dir=/home/foo/sw

Однако этота же самая техника не работает с рейком:

$ 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.

Как я могу заставить эту работу работать с рейком (а значит капистрано)?

1 Ответ

0 голосов
/ 16 сентября 2010

Ни за что. Во-первых, rake использует env как param "rake .... RAILS_ENV = production". Во-вторых, драгоценные камни: задача сборки рейка не передает никаких дополнительных параметров в

Rails::GemBuilder.new(specification, gem_dir).build_extensions

В rails / railties / lib / tasks / gems.rake.

Решением будет написание собственной задачи или использование упаковщика.

...