Question

Je viens de passer de Rails 3.0.3 à 3.2.1. La mise à niveau s'est bien déroulée sur mon Mac, mais j'ai du mal à obtenir une instance 3.2.1 de mon application en cours d'exécution sur mon serveur de production Ubuntu. L'erreur que j'obtiens est la suivante:

Could not find i18n-0.6.0 in any of the sources (Bundler::GemNotFound)

De toute évidence, d'autres personnes ont déjà eu ce même problème. Malheureusement, La solution ici ne le répare pas pour moi. Action sudo bundle install ne semble pas faire de différence.

J'ai aussi trouvé ce post Mais je ne comprends pas ce que l'OP a fait exactement qui a résolu le problème.

Il y a ce post Aussi, mais le problème du PO là-bas a juste disparu seul.

Et j'ai le i18n gemme installé:

$ gem list | grep i18n
i18n (0.6.0, 0.5.0)

Je n'ai aucune idée de ce qui pourrait être mal. Des idées?

Était-ce utile?

La solution

J'ai eu exactement la même erreur. Utilisez-vous RVM et passager?

Si vous avez fait installer RVM avant de commencer l'installation du passager, une fois le passager terminé son installation, il vous donne les instructions de mise à jour de la configuration Apache avec quelque chose de similaire à:

LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p125@global/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p125@global/gems/passenger-3.0.11
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p125@global/ruby

J'ai installé un passager avec Global Gemset, mais plus tard, j'ai créé un autre gemme que j'ai utilisé pour mon application (appelons ce nouveau Gemset 'Foo').

La solution qui a fonctionné pour moi a été de changer de «global» en «foo» dans la 3e ligne:

PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p125@foo/ruby

Autres conseils

bundle install --deploymentfonctionnait pour moi.

Un fichier .rvmrc à la racine de votre application résout ce problème. Passant par Documentation RVM:

# my-app-name/.rvmrc
if [[ -s "/Users/sutto/.rvm/environments/ree-1.8.7-2010.02@my-app-name" ]] ; then
  . "/Users/sutto/.rvm/environments/ree-1.8.7-2010.02@my-app-name"
else
  rvm --create use  "ree-1.8.7-2010.02@my-app-name"
fi

Remplacez par l'utilisateur correct, la version Ruby et Gemset, le cas échéant. (Les utilisateurs de Linux auront probablement la maison / nom d'utilisateur / .rvm ...)

Ajoutons maintenant la configuration_load_paths.rb pour que le passager ait les chemins corrects (ne devrait rien avoir à changer ici):

# my-app-name/config/setup_load_paths.rb
if ENV['MY_RUBY_HOME'] && ENV['MY_RUBY_HOME'].include?('rvm')
  begin
    require 'rvm'
    RVM.use_from_path! File.dirname(File.dirname(__FILE__))
  rescue LoadError
    raise "RVM gem is currently unavailable."
  end
end

# If you're not using Bundler at all, remove lines bellow
ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__))
require 'bundler/setup'

J'avais le même problème et j'ai réalisé que j'utilisais JRuby pour ramener (j'utilisais RVM). Avec Ruby, ça s'est passé sans problème :)

Par conséquent, assurez-vous que vous utilisez Ruby au lieu de JRuby. Juste au cas où vous utilisez également RVM, utilisez:

rvm list

Pour faire installer la liste de tous les rubis et

rvm use ruby-...

Pour le sélectionner.

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