2010-09-15 30 views
1

Sur le serveur (où je ne suis pas root), j'ai compilé libxslt en /home/foo/sw.passer les options de configuration pour rayer les gems: build

Je peux installer mon bijou comme si:

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

Cependant, cette même technique ne fonctionne pas avec le râteau:

$ rake gems:build -- --with-xslt-dir=/home/foo/sw 
(in /home/foo/fooapp/releases/20100915071151) 

Si je tente de forcer une construction, je reçois le erreur de chemin:

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

Comment puis-je faire fonctionner ceci avec rake (et donc Capistrano)?

Répondre

0

Pas moyen. Tout d'abord rake utilise env comme params "rake .... RAILS_ENV = production". Deuxièmement pierres précieuses: construire tâche râteau ne passe pas params supplémentaires pour

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

Rails/railties/lib/tâches/gems.rake.

La solution écrit sa propre tâche ou utilise bundler.

+0

Comment pourrais-je faire cela avec bundler? –

+0

La commande 'bundle install' crée également des extensions gem. Je suppose qu'il y a un moyen de l'invoquer de Capistrano et éventuellement avec quelques params. Nécessite une enquête. – gertas