Downgrade da versão RubyGem

Downgrade da versão RubyGem

Quando o comando sudo rake db:migratefoi executado a mensagem de erro abaixo apareceu.

rake aborted!
RubyGem version error: rack(1.4.1 not ~> 1.1.0)

Acho que a versão do RubyGem é posterior à esperada. Como posso fazer o downgrade da versão do RubyGem?

Responder1

Uma versão "muito nova" do RubyGems pode de fato ser um problema com alguns aplicativos mais antigos (principalmente aqueles que ainda usam Rails 2.x), mas a mensagem de erro que você postou parece indicar uma causa diferente. Seus aplicativos desejam uma versão específica do gem Rack e as versões que você instalou provavelmente não atendem a essa solicitação.

Suas aplicações exigem rack ~> 1.1.0. Essa condição é atendida por qualquer versão da série 1.1.x, por exemplo 1.1.0, 1.1.5 ou 1.1.345, mas não 1.2.0 ou 2.0.0. Parece que você instalou o Rack em 1.4.1, que não corresponde à condição ~> 1.1.0.

Felizmente você pode instalar diferentes versões da mesma jóia lado a lado. Para verificar quais versões do Rack você instalou, você pode usar

gem list -l rack

Essas listas são gemas instaladas localmente (por causa da opção -l) cujo nome começa com 'rack'. Nessa lista provavelmente não há versão da série 1.1.x.

Para instalar uma versão específica de uma gem você pode usar a opção --version=xyz, no seu caso

gem install rack --version=1.1.0

É provável que suas migrações ocorram com isso.

Se você realmente precisa fazer o downgrade do RubyGems, primeiro você precisa instalar a gem RubyGems ( :D ) na versão que deseja fazer o downgrade, de forma análoga ao que você fez acima, por exemplo

gem install rubygems-update --version=x.y.z

Então você pode executar a "atualização" (no seu caso, o downgrade)

gem update --system x.y.z

onde xyz é o número da versão desejada. Esteja ciente de que a "atualização" para uma versão específica foi introduzida no RubyGems 1.5.1, então você não pode fazer downgrade para nenhuma versão abaixo dessa.

informação relacionada