Eu sempre recomendaria primeiro atualizar para o Rails 3 no Ruby 1.9.x (ou Rails 4 no Ruby 2 para você), mas se houver um caso em que você absolutamente precisa da mistura 2.3.x / 1.8.7, minhas dores de cabeça podem ajude a poupar o seu.
Obtenha Ruby 1.8.7
Depois de instalar o RVM , instale a versão mais antiga do Ruby
rvm install 1.8.7-p352 --verify-downloads 1
Use esta versão Ruby com rvm use 1.8.7-p352
ou rvm rvmrc to .ruby-version
. O último é se você já tiver uma configuração de ambiente Ruby com um arquivo .rvmrc.
Faça downgrade de seus RubyGems
É sempre um mau sinal quando você vê a palavra “downgrade”, mas existem tantas incompatibilidades entre o RubyGems mais novo (que virá com uma nova instalação do RVM e qualquer Ruby) e Rails 2.3.5. Portanto, para contornar uma série de erros alegando que não existem tais métodos, faça downgrade!
gem update --system 1.3.5
RubyGems 1.3.5 foi uma aposta segura para mim porque eu tinha o aplicativo funcionando com esta versão em outro servidor. Você pode ter que pescar para sua versão específica, mas o pacote 1.3.x parece resolver a maioria desses problemas.
Este downgrade sozinho funcionou para mim, mas você também pode ter que excluir a versão mais recente do RubyGems se o seu aplicativo ainda estiver tendo problemas de compatibilidade ( sudo gem uninstall -v '{VERSION_NO}' rubygems-update
).
Desinstalar bundler
O erro que encontrei que me levou ao Google foi uninitialized constant Gem::Installer::ENV_PATHS
e esta postagem me levou a desinstalar o bundler. Para desinstalar o bundler, execute:
rvm @global do gem uninstall -ax rubygems-bundler
Observe que isso afetará sua instalação global do Ruby, portanto, você provavelmente não deseja hospedar aplicativos Ruby mais recentes no mesmo servidor.
Instalar passageiro
gem install passenger -v=3.0.8
E configurá-lo .
Instale outras joias necessárias
Você deve estar pronto para instalar todas as joias necessárias e colocar o aplicativo em execução. Se você tiver a sorte de ter um servidor em execução com este aplicativo, do qual pode espelhar as configurações do gem, faça isso; as versões mais recentes de gem provavelmente causarão todos os tipos de problemas.
Se você era um programador meticuloso antes do bundler e configurou todas as suas config.gem
linhas em seus ambientes Rails, bom para você, isso vai ser muito fácil.
Para o resto de nós, corte suas perdas e atualize todos os seus aplicativos o mais rápido possível.