
Quando o comando sudo rake db:migrate
foi 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.