Mongrel: warning: already initialized constant OPTIONS
Publicado por Aníbal Rojas 31 Octubre 2007 en General, Ruby. Etiquetas: gems, mongrel, Rails, ruby, webrick rubyonrails. english • españolEste debe estar en la galería de los mensajes de error más oscuros, y obfuscados en la historia de los lenguajes de programación :-(
$ ruby script/server
=> Booting Mongrel (use 'script/server webrick' to force WEBrick)
=> Rails application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
** Starting Mongrel listening at :3000
** Starting Rails with development environment...
Exiting
./script/../config/../vendor/rails/railties/lib/commands/servers/mongrel.rb:15: warning: already initialized constant OPTIONS
./script/../config/../vendor/rails/railties/lib/commands/servers/mongrel.rb:18: undefined method `options' for []:Array (NoMethodError)
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:32:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:32:in `require'
from ./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:495:in `require'
from ./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:342:in `new_constants_in'
from ./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:495:in `require'
from ./script/../config/../vendor/rails/railties/lib/commands/server.rb:39
from script/server:3:in `require'
=> Booting Mongrel (use 'script/server webrick' to force WEBrick)
=> Rails application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
** Starting Mongrel listening at :3000
** Starting Rails with development environment...
Exiting
./script/../config/../vendor/rails/railties/lib/commands/servers/mongrel.rb:15: warning: already initialized constant OPTIONS
./script/../config/../vendor/rails/railties/lib/commands/servers/mongrel.rb:18: undefined method `options' for []:Array (NoMethodError)
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:32:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:32:in `require'
from ./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:495:in `require'
from ./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:342:in `new_constants_in'
from ./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:495:in `require'
from ./script/../config/../vendor/rails/railties/lib/commands/server.rb:39
from script/server:3:in `require'
El problema real es que algún gem ruby que está siendo requerido por la aplicación so se encuentra presente. La forma más sencilla de encontrar cuales son los gems que faltan es switchear a webrick, que los reportará en una forma mucho más amigable.
$ ruby script/server webrick
=> Booting WEBrick...
./script/../config/../vendor/rails/railties/lib/commands/servers/webrick.rb:11: warning: already initialized constant OPTIONS
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- hpricot (MissingSourceFile)
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
from ./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:495:in `require'
from ./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:342:in `new_constants_in'
from ./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:495:in `require'
from ./script/../config/../vendor/plugins/mofo/lib/microformat.rb:1
from ./script/../config/../vendor/plugins/mofo/lib/microformat.rb:1:in `each'
from ./script/../config/../vendor/plugins/mofo/lib/microformat.rb:1
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
... 39 levels...
from ./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:495:in `require'
from ./script/../config/../vendor/rails/railties/lib/commands/server.rb:39
from script/server:3:in `require'
from script/server:3
=> Booting WEBrick...
./script/../config/../vendor/rails/railties/lib/commands/servers/webrick.rb:11: warning: already initialized constant OPTIONS
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require': no such file to load -- hpricot (MissingSourceFile)
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
from ./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:495:in `require'
from ./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:342:in `new_constants_in'
from ./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:495:in `require'
from ./script/../config/../vendor/plugins/mofo/lib/microformat.rb:1
from ./script/../config/../vendor/plugins/mofo/lib/microformat.rb:1:in `each'
from ./script/../config/../vendor/plugins/mofo/lib/microformat.rb:1
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
... 39 levels...
from ./script/../config/../vendor/rails/activesupport/lib/active_support/dependencies.rb:495:in `require'
from ./script/../config/../vendor/rails/railties/lib/commands/server.rb:39
from script/server:3:in `require'
from script/server:3
Muchas gracias, me ha servido este truco.