2011-11-29 10 views
5

Estoy tratando de comenzar con ruby ​​y Watir-webdriver para la automatización de algunas pruebas.ERROR: Al ejecutar gema ... (NoMethodError) método indefinido `spec 'for nil: NilClass

sudo apt-get install ruby rubygems

sudo gem install watir-webdriver

Cada vez que instalo joya que estoy recibiendo estos errores como:

[/usr/lib/ruby/gems/1.8/specifications/selenium-webdriver-2.13.0.gemspec] isn't a Gem::Specification (NilClass instead). 
ERROR: While executing gem ... (NoMethodError) 
    undefined method `spec' for nil:NilClass 
+0

BTW: si eres nuevo en Ruby y lo usarás principalmente para scripting y automatización, recomiendo encarecidamente 'Everyday Scripting with Ruby' de Brian Marick como un buen libro para comenzar. Puede obtenerlo a un precio razonable en formato de libro electrónico directamente de los programadores pragmáticos. También eche un vistazo al (en progreso) 'Watir Book' de Zeljko Filipin (https://github.com/zeljkofilipin/watirbook/downloads), es gratis en este momento (pero estoy seguro de que el autor no rechazará las donaciones , o especialmente los comentarios de los nuevos en Watir y Ruby) –

Respuesta

4

El problema se debió a que las descargas dañadas se almacenaban en la caché, por lo que incluso después de gem uninstall y reinstalar, el error persistía. Para forzar la re-descarga, vacié los directorios de caché que se encuentran al marcar bajo GEM PATHS en la salida del comando gem env.

+1

Si esto solucionó el problema, debe aceptar su respuesta. Lo recomendaría si no lo has hecho investigando RVM, hace que administrar versiones de ruby ​​y gemas, etc. sea mucho más fácil. también hace las cosas mucho más fáciles en el futuro cuando llega el momento de actualizar el lenguaje ruby ​​o las gemas específicas que tienen muchas dependencias con otras gemas. –

+0

+1, también especificaciones vacías si recibe advertencias de gemspecs. –

2

debería intentar usar Rubí 1.9.x

La forma más fácil es utilice RVM:

sudo apt-get install git 
bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer) 
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session. 
rvm install 1.9.2 
rvm use 1.9.2 
gem install watir-webdriver 
+0

Me sale un error similar cuando uso su script: ''ERROR: Mientras se ejecuta gem ... (NoMethodError) método indefinido' spec 'para nil: NilClass'' – wim

+5

Don' Use sudo para instalar las gemas que espera usar con un Ruby administrado por RVM. –

Cuestiones relacionadas