
sudo rake db:migrate
Cuando se ejecutó el comando de apareció el siguiente mensaje de error.
rake aborted!
RubyGem version error: rack(1.4.1 not ~> 1.1.0)
Supongo que la versión de RubyGem es posterior a la esperada. ¿Cómo puedo degradar la versión de RubyGem?
Respuesta1
De hecho, una versión "demasiado nueva" de RubyGems puede ser un problema con algunas aplicaciones más antiguas (principalmente aquellas que todavía usan Rails 2.x), pero el mensaje de error que publicó parece indicar una causa diferente. Sus aplicaciones requieren una versión específica de la gema Rack y las versiones que ha instalado probablemente no se ajusten a esa solicitud.
Sus aplicaciones requieren rack ~> 1.1.0. Esa condición coincide con cualquier versión de la serie 1.1.x, por ejemplo 1.1.0, 1.1.5 o 1.1.345, pero no 1.2.0 o 2.0.0. Parece que instaló Rack en 1.4.1, que no coincide con la condición ~> 1.1.0.
Afortunadamente, puedes instalar diferentes versiones de la misma gema una al lado de la otra. Para comprobar qué versión(es) de Rack ha instalado, puede utilizar
gem list -l rack
Esas listas son gemas instaladas localmente (debido al modificador -l) cuyo nombre comienza con 'rack'. En esa lista probablemente no haya ninguna versión de la serie 1.1.x.
Para instalar una versión específica de una gema puedes usar la opción --version=xyz, en tu caso
gem install rack --version=1.1.0
Lo más probable es que sus migraciones terminen con eso.
Si realmente necesita degradar RubyGems, primero debe instalar la gema RubyGems ( :D ) en la versión que desea degradar a una versión análoga a la que hizo anteriormente, por ejemplo.
gem install rubygems-update --version=x.y.z
Luego puede ejecutar la "actualización" (en su caso, la degradación)
gem update --system x.y.z
donde xyz es el número de versión que desea. Tenga en cuenta que la "actualización" a una versión específica se introdujo en RubyGems 1.5.1, por lo que no puede cambiar a ninguna versión inferior a esa.