Question

J'essaie de déployer une application RoR utilisant Passenger sur mon compte d'hébergement DreamHost, mais je ne parviens pas à la mettre en place.

Mon application nécessite deux joyaux personnalisés, "amazon-ecs" et "nokogiri". Selon les instructions du wiki DreamHost ( http://wiki.dreamhost.com/Freezing_Gems ) I gelez les gemmes aux fournisseurs en les codant dans mon fichier de configuration (config.gem "nokogiri"), puis utilisez la commande rake gems: unpack pour les intégrer au fournisseur.

J'ai ensuite gelé les rails gems à l'aide de rake rails: freeze: gems et les ai téléchargés dans mon sous-domaine.

Les sept dernières lignes de ma trace arrière sont les suivantes:

0   /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb   336     in `abort'
1   /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb   336     in `check_gem_dependencies'
2   /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb   170     in `process'
3   /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb   113     in `send'
4   /home/rclosner/demo.spubooks.com/vendor/rails/railties/lib/initializer.rb   113     in `run'
5   ./config/environment.rb     9   
6   /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb     31  in `gem_original_require'
7   /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb     31  in `require'

Mon fichier de configuration ressemble à ceci:

RAILS_GEM_VERSION = '2.3.3' unless defined? RAILS_GEM_VERSION
require File.join(File.dirname(__FILE__), 'boot')

Rails::Initializer.run do |config|
config.gem "nokogiri"
config.gem "amazon-ecs"
config.time_zone = 'UTC'
end

Ai-je manqué une étape avec les gemmes? Suis-je sur la bonne voie?

Était-ce utile?

La solution

Aucun bijou doté d'extensions natives ne peut être vendu avec votre application, et il y a fort à parier que sur DH, config.gem ne fonctionnera pas correctement non plus. Vous devez installer vos propres rubygems et faire en sorte que votre application les utilise. Je recommande de jeter un coup d'oeil à ceci:

http://railstips.org/2008/11 / 24 / rubygems-yours-mine-and-our

Il contient d'excellentes instructions pour configurer votre environnement sur DH. Je n'avais qu'à faire cela la semaine dernière après une mise à niveau du serveur, et cela s'applique toujours.

Autres conseils

so / vendor / rails et / vendor / plugins / nokogiri et amazon-ecs existent et vous vont bien? Vous pouvez essayer à nouveau et cette fois en spécifiant la version exacte de la gemme dans votre config comme ceci

config.gem "nokogiri", :version => "1.0"

ou si la gemme est sur Github

config.gem "tenderlove-nokogiri", :version => "1.0", :lib => "nokogiri", :source => "http://gems.github.com"

La trace ne semble pas très utile, que se passe-t-il exactement? : -)

J'ai la même trace de retour (sur une page d'erreur Passager) avec une application que j'ai déployée récemment. Il s'est avéré qu'il n'a pas été en mesure de trouver l'un des joyaux dont je dépendais (config.gem) ... malgré le fait que les joyaux de rake disaient qu'il était là ([I] test-unit = 1.2.3).

Le support Dreamhost m'a suggéré d'essayer de congeler / décompresser mes gemmes. Cela aurait probablement fonctionné (il n'y a pas eu de problème à trouver l'un de mes autres gemmes, qui étaient gelées), mais pour une raison quelconque, rake gems: déballer ne faisait rien pour moi, alors j'ai fini par commenter cette config Ligne .gem puisque je n’en ai de toute façon pas eu besoin en production, et cela a fonctionné!

Donc, si quelqu'un d'autre a cette erreur, cela indique fortement que l'une de vos pierres précieuses n'a pas été trouvée. Essayez de commenter vos lignes config.gem, l’une après l’autre, jusqu’à ce qu’elles commencent à fonctionner ou si vous obtenez une erreur différente?

J'ai eu un problème sur DreamHost la semaine dernière où mes applications Rails en état de fonctionnement ont soudainement cessé de fonctionner en raison de pierres précieuses manquantes. J'ai contacté le support et voici leur réponse:

  

On dirait que des modifications ont été apportées   à votre serveur et la plupart des   rubygems installés par le système n'étaient pas   réinstallé comme ils devraient avoir   été. J'ai installé manuellement le sqlite3   joyau pour vous, mais notre administrateur qui gère   cela devra jeter un oeil à cette   pour comprendre pourquoi ils n'étaient pas   installée. Si vous avez quelques autres   que vous voyez ne fonctionne pas, je peux regarder   potentiellement les installer comme un arrêt   écart dans le temps moyen.

Il est possible que vous soyez affecté par la même chose. Essayez de contacter le support pour le savoir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top