Rails 3: le Passager ne peut pas trouver git gemmes installé par bundler
Rails 3.0.0, Passager 2.2.15:
- Créer un nouveau Rails de projet
- Ajouter
gem 'paperclip', :git => 'git://github.com/lmumar/paperclip.git', :branch => 'rails3'
à votre Gemfile - Ne
bundle install
- Tout est OK, à commencer par
rails/script server
& accès fonctionne aussi - Cependant, lors de l'accès avec le Passager, il dit:
git://github.com/lmumar/trombone.git (à rails3) n'est pas vérifiée. S'il vous plaît exécuter bundle install
(Bundler::GitError)
J'ai essayé bundler pack
(n'aide pas) et la mise en BUNDER_HOME à ~/.bundler (le Trombone git est installé là par bundler install
) dans le .htaccess et divers endroits dans config/*.rb, mais ce n'était pas de succès, trop.
~/.bundler est détenue par le même utilisateur que les Rails de projet (Passager s'exécute sous cet utilisateur), donc il ne peut pas être un problème de permission. sudo est installé et appelé par bundle install
.
Un indice?
- N'est-ce pas un meilleur candidat pour
serverfault
puisqu'il traite de la configuration denginx
ouapache
? - Je ne comprends pas. J'ai des problèmes avec le Passager, à l'aide d'Apache.
bundle pack
résoudre mon problème. stackoverflow.com/questions/2494399/...
Vous devez vous connecter pour publier un commentaire.
Im utilisé pour avoir ce problème, le résoudre à l'aide de
Qui va installer les gems dans vendor/bundle
bundle install --path vendor/bundle
à la place.bundle --deployment
échoue pour moi lors de l'installation denokogiri
(je suis à l'aide de Bitnami Rubystack de sorte que chaque fois que j'installenokogiri
je passe le xml2 et xml2-répertoires inclure explicitement, comment puis-je passer de ces arguments pourbundle --deployment
?.gitignore
est pour.Solution (m'a fallu quelques heures):
Mare assurer que
RAILS_ROOT/.bundle/config
(SetEnv etc. ne fonctionne pas pour moi) contient:Note BUNDLE_PATH, pas BUNDLER_PATH! Il y avait aussi une DISABLED_SHARED_GEMS=1 entrée, je l'ai enlevé.
Bundler reconnaît le bon chemin, même lorsqu'il est chargé du transport des Passagers. Sans Passagers, il a toujours travaillé (et utilisé /home/xxxxx/.bundler, comme dit dans la question)
bundle install
. Après ça, j'ai eu le répertoire et le passager a été en mesure de trouver le lot de pierres précieuses.Vous pouvez utiliser
bundle install --path vendor/bundle
pour installer les gems localement, plutôt que dans le système de gemmes.Si vous souhaitez continuer à utiliser le système de gemmes, si, c'est juste une ligne dans votre configuration d'Apache pour dire Passager où trouver votre système de gemmes:
Il y a un peu plus élaborée article sur mon blog à l' À l'aide de Passagers avec GEM_HOME ensemble
J'ai rencontré ce problème lors de l'écriture d'un Sinatra app. Pour le résoudre j'ai ajouté cette ligne à config.ru.
J'ai eu le même problème et c'était dû à un problème de droits avec RVM.
L'utilisateur exécutant le serveur web ne peut pas vérifier si GIT gem est disponible.
En tant que "Passager" en utilisant le web de l'utilisateur à exécuter, il ne peut pas faire cette vérification.
La solution que j'ai trouvé a été d'ajouter un utilisateur à rvm groupe:
J'espère que cela aidera certaines personnes à d'autres qui ne veulent pas avoir des GEM déployé dans "vendeur/bundle".
J'ai installé le passager gem et son module apache comme un utilisateur sudo et que c'était le problème dans mon cas.
La raison pour laquelle j'ai utilisé sudo était initialement que j'ai copié le code de railscasts' épisode 122. Installation sans sodu accès résolu ce problème. Depuis Ruby a été installé à l'aide de rvm sans le sudo accès sur mon système.