rails - ruby toolbox
Gema "Cadena del número de versión malformada" (3)
Debes eliminar manualmente tu gema:
cd $GEM_HOME
find . -path /*my_gem/*
Si todo se ve bien (es decir, no hay archivos que no estén relacionados con tu gema):
find . -path /*my_gem/* -delete
Antes de volver a instalar tu gema, asegúrate de haber especificado la version
en tu .gemspec
.
UPD .
Otros lugares para buscar el residuo de la gema:
~/.rvm/gems/ruby-<version>@global
~/.rvm/gems/ruby-<version>
/System/Library/Frameworks/Ruby.framework/
# look for "GEM PATHS" section
gem env
# rbenv paths
~/.rbenv/versions
~/.gem/
UPD2
¡Problema resuelto! Pasos tomados:
Esto mostró dónde está exactamente este ejecutable de Rubygems en particular, que no se pudo cargar:
rbenv which gem
# => /Users/<username>/.rbenv/versions/2.2.2/bin/gem
Luego resulta que en el directorio 2.2.2
había directorios de cache
, doc
y specifications
, todos los cuales contenían un archivo o subdirectorio con el residuo de la gema rota. Eliminarlos a todos resolvió el problema.
Estoy construyendo una joya. Acabo de diseñar la estructura básica del proyecto e intenté construirlo con la gem build my_gem.gemspec
, que funcionó bien. Luego lo instalé con gem install My/ Gem-0.0.1.gem
y aún parecía que funcionaba bien. Entonces traté de ejecutar irb
y obtuve esto:
/Users/<username>/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/version.rb:206:in `initialize'': Malformed version number string on (ArgumentError)
Luego intenté hacer algunos cambios y los guardé. gem build my_gem.gemspec
. Mismo error. Todos los sub-comandos irb
, rails
y gem
están generando un rastro de pila con esto en la parte superior. ¿Qué hice para romper todos estos comandos y cómo puedo revertirlo?
(2016-mayo-24)
Resuelvo este problema hoy.
Intenté aprender a escribir una gema. y luego causa este problema.
Mi suposición es porque el nombre de mi gema contiene espacios en blanco: "hola 1c7"
y gema no te dicen cómo resolver este prbolem, esto es molesto
debe ir a: /usr/local/lib/ruby/gems/2.3.0/specifications
eliminar ese xxx.gemspec
en mi caso, el nombre de mi gema es "hola 1c7"
entonces elimino "hola 1c7-0.1.2.gemspec"
Creo que es el problema de la causa del espacio.
si esto no funciona,
intenta buscar el nombre de tu gema en /usr/local/lib/ruby/gems/
y elimina todo el archivo que puedas encontrar,
en mi caso, primero borro
hola 1c7.1.3.2.gem
de /usr/local/lib/ruby/gems/2.3.0/cache
entonces el comando es:
/usr/local/lib/ruby/gems/2.3.0/cache$ sudo rm -rf hola/ 1c7-1.3.2.gem
y luego /usr/local/lib/ruby/gems/2.3.0/gems$ sudo rm -rf hola/ 1c7-1.3.2/
Mi versión de Ruby: Ruby 2.3.0
Mi versión de Linux: Ubuntu 16.04 LTS
No pude encontrar los archivos en la ruta de referencia, o algunas de las otras rutas sugeridas en esta publicación. Algo que me ayudó fue comentar primero el error en el archivo version.rb en la línea 201. Luego usar el directorio GEM PATH usando $ gem env
para encontrar la ruta que tenía referencias a la gema. Asegúrese de eliminar todo de las carpetas de documentos, caché y especificaciones. Esto finalmente resolvió mi problema.