2010-07-06 8 views
25

Estoy tratando de ejecutar Rails 3 beta 4 & Ruby 1.9.2rc en Ubuntu 10.04. Funcionó inicialmente, pero después de hacer mi primer paquete de instalación/paquete, ahora recibo los siguientes errores en todos los proyectos de rieles. Incluso un "proyecto de prueba de rieles nuevo" seguido de un rake muestra los mensajes de error.Rails 3.0 y Ruby 1.9.2rc: los comandos Rake devuelven los errores "ya inicializados" y los errores demasiado profundos. Cualquier idea

En resumen, estoy perplejo. Cualquier ayuda con respecto a lo que podría estar causando esto sería muy apreciada.

Lo único que noté, que puede o no ser relevante, es que el directorio en los archivos ~/.bundle es ruby ​​/ 1.9.1. 1.9.1 no está instalado en mi máquina, solo 1.9.2rc. ruby -v trae de vuelta 1.9.2

(in /home/john/Websites/sandbox/testerino) 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:32: warning: already initialized constant RAKEVERSION 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake/alt_system.rb:32: warning: already initialized constant WINDOWS 
WARNING: Possible conflict with Rake extension: String#ext already exists 
WARNING: Possible conflict with Rake extension: String#pathmap already exists 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:404: warning: already initialized constant EMPTY_TASK_ARGS 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:452: warning: already initialized constant EMPTY 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:960: warning: already initialized constant RUBY_EXT 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:964: warning: already initialized constant RUBY 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1033: warning: already initialized constant LN_SUPPORTED 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1242: warning: already initialized constant ARRAY_METHODS 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1245: warning: already initialized constant MUST_DEFINE 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1249: warning: already initialized constant MUST_NOT_DEFINE 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1253: warning: already initialized constant SPECIAL_RETURN 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1259: warning: already initialized constant DELEGATING_METHODS 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1569: warning: already initialized constant DEFAULT_IGNORE_PATTERNS 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1575: warning: already initialized constant DEFAULT_IGNORE_PROCS 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1612: warning: already initialized constant FileList 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1638: warning: already initialized constant EARLY 
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1968: warning: already initialized constant DEFAULT_RAKEFILES 
rake aborted! 
stack level too deep 
+0

¿y su código es? – Salil

+0

Sucede en todos los proyectos, incluida una instalación completa. – PlankTon

Respuesta

24

Me temo que la solución más fácil se ejecuta este comando en lugar de rake db: migrate

bundle exec rake db:migrate 
+0

Sí, en realidad podría ser mejor, ya que su entorno no se modifica. –

+1

Fue sugerido por un amigo mío, Pratik Naik (http://stackoverflow.com/users/639946/pratik-naik) que también está en el equipo central de rails. No-mi publicación por eso, solo estaba diseminando conocimiento. :) –

1

Parece una extraña recursiva require.

¿Intentó desinstalar todas las versiones de rake y volver a instalarlo? Hay un error en 1.9.2rc affecting gem loading, ¿podría ser? No lo miré de cerca ya que muchas personas ya lo siguen de cerca ...

Nota: La versión 1.9.1 es la API, por lo que es correcta.

+0

¿El hecho de que fue aceptado significa que funcionó? –

31

Me he encontrado con este problema también. No parece estar relacionado con las versiones específicas de los rieles o ruby ​​que mencionas, que son diferentes de las que estoy usando (Rails 2.3.8, Rake 0.8.7, Ruby 1.9.1p378). Parece estar relacionado con que bundler y rake no funcionan bien juntos.

Una resolución que funcionó para mí se menciona en la parte inferior de this lighthouse ticket. Aquí está la versión corta:

  • Ejecute "bundle exec bash"; vea si el rake funciona ahora - si lo hace,
  • Asegúrese de que los entornos bash, antes y después, sean los mismos consultando el comando env y modificando ~/.bashrc o ~/.bash_profile en consecuencia.

Una vez que haga esto, ensucia un poco el paquete. En ese punto hay que aclarar RUBYOPT con el fin de ejecutar el comando bundle:

RUBYOPT= bundle install --relock 

EDIT:

Pensando en ello un poco más, no estoy seguro de que esto es necesariamente la mejor manera de abordar este problema en particular. Puede darle una propina a Hiral Desai y algunas otras respuestas antes de recurrir a este enfoque, ya que este cambia el ambiente.

+1

Tuve un problema similar al ejecutar cualquier tarea de rake en mi aplicación Rails. Se fue después de ejecutar 'bundle exec bash', pero tengo que volver a ejecutar' bundc exec bash' si abro una nueva pestaña en mi terminal. – ravinggenius

4

Según el mensaje anterior de Eric W. se establece la variable de entorno RUBYOPT. Si desea salir de la nueva cáscara del golpe que se abre por el "paquete de fiesta exec" y luego simplemente copiar la línea ambiente RUBYOPT, salga de la cáscara a continuación, escriba "exportación RUBYOPT = 'El ARGS que ha copiado desde el entorno ANTERIOR'

Nota: esto funciona con el rubí 1.9.2p180 (2011-02-18 revisión 30909) [x86_64-darwin10.7.0] , rieles 3.0.7, 1.8.0 y rastrillo joya 0.8.7

+0

¡Funcionó perfectamente para mí! ¡Gracias! –

0

tuve una. carpeta bundler en mi directorio raíz que estaba en conflicto. Quitarlo lo hizo por mí.

rm -rf ~/.bundler 
4

bundle exec bash funciona para mí

0

He estado corriendo en este tema también después de la actualización rubygem (1.8.10) y bundler (1.0.18)

he resuelto la actualización 0.9.2 rastrillo para

0

Acabo de dicho error a causa de borrado .rvmrc

Así que por favor asegúrese de que se ejecuta en el entorno correcto rastrillo;)

3

que era capaz de resolver este problema por degradar mi rubygem instalar desde 1.8.10 a 1,7. 2.

gem update --system 1.7.2 
+0

Si tienes rvm: rvm instala rubygems 1.7.2 –

0

Si tiene RVM instalado, este problema puede comenzar a ocurrir una vez que actualice rubygems a 1.8.15. El problema era que tenía Rake instalado en el gemset global y en el gemset de mi proyecto. La solución era tener solo una instalación de rastrillo. Para eliminarlo de la gemset proyecto: 1. cd al proyecto 2. joya desinstalación rastrillo

0

Esto puede suceder cuando tiene la gema de rastrillo instalada tanto en el gemset rvm de su repositorio como en el global.

0

Actualice a la última versión menor de Rails. Entonces, si está en 4.2, actualice => 4.2.latest.

Cuestiones relacionadas