2012-02-28 11 views
7

Acabo de actualizar de Rails 3.0.3 a 3.2.1. La actualización se realizó sin problemas en mi Mac, pero tengo problemas para ejecutar una instancia 3.2.1 de mi aplicación en mi servidor de producción Ubuntu. El error que estoy recibiendo es este:No se pudo encontrar i18n-0.6.0 en ninguna de las fuentes

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

Obviamente, otras personas han tenido este mismo problema antes. Desafortunadamente, the solution here no lo arregla para mí. Hacer sudo bundle install no parece hacer la diferencia.

También encontré this post pero no entiendo exactamente qué hizo el OP que resolvió el problema.

También está this post, pero el problema de OP simplemente desapareció por sí solo.

y tengo instalado el i18n joya:

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

no tengo idea de lo que podría estar equivocado. ¿Algunas ideas?

+0

¿Puede ejecutar 'lista de paquetes | grep i18n' y salida que por favor? – TheDelChop

+0

'* i18n (0.6.0)' –

+0

¿Cuál es el comando que está tratando de ejecutar que le da el error? – TheDelChop

Respuesta

7

Tuve exactamente el mismo error. ¿Estás usando rvm y pasajero?

Si había instalado RVM antes de comenzar la instalación de pasajeros, después del pasajero termina su instalación le da las instrucciones para actualizar la configuración de Apache con algo similar a: pasajeros

LoadModule passenger_module /usr/local/rvm/gems/[email protected]/gems/passenger-3.0.11/ext/apache2/mod_passenger.so 
PassengerRoot /usr/local/rvm/gems/[email protected]/gems/passenger-3.0.11 
PassengerRuby /usr/local/rvm/wrappers/[email protected]/ruby 

He instalado con gemset mundial, pero más tarde Creé otro gemset que utilicé para mi aplicación (vamos a llamar a este nuevo gemset 'foo').

La solución que funcionó para mí fue cambiar 'global' a 'foo' en la 3ª línea:

PassengerRuby /usr/local/rvm/wrappers/[email protected]/ruby 
+0

Gracias por su respuesta @draganstankovic, pero en realidad no es una solución. El objetivo de gemset global es que muchas aplicaciones lo puedan compartir. – dangerousdave

+0

@dangerousdave Por favor, lea nuevamente mi respuesta. El objetivo es sincronizar el pasajero con cualquier gemset que use. (ya sea global, foo o bar, no importa) – draganstankovic

1

Un archivo .rvmrc en la raíz de su aplicación resuelve este problema. Via rvm documentation:

# my-app-name/.rvmrc 
if [[ -s "/Users/sutto/.rvm/environments/[email protected]" ]] ; then 
    . "/Users/sutto/.rvm/environments/[email protected]" 
else 
    rvm --create use "[email protected]" 
fi 

Reemplazar con el usuario correcto, la versión de Ruby y gemset en su caso. (Los usuarios de Linux probablemente tendrá home/usuario/.rvm ...)

Ahora vamos a añadir el setup_load_paths.rb por lo pasajero tiene las rutas correctas (no debería tener nada que cambiar aquí):

# 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' 
1

Estaba teniendo el mismo problema y me di cuenta de que estaba usando jRuby para rake (estaba usando RVM). Con Ruby se fue sin problemas :)

Por lo tanto, asegúrese de estar usando Ruby en lugar de jRuby. Sólo en caso de que estés usando RVM, así, utilizar:

rvm list 

para obtener la lista de todos los rubíes instalados y

rvm use ruby-... 

para seleccionarlo.

+0

Esto funcionó para mí, y tiene más sentido que el cambio de nombre global a foo – 1dayitwillmake

+0

Sin embargo, tengo downvoted. Hurra – Sikian

3

bundle install --deployment funcionó para mí.

Cuestiones relacionadas