老得要死的ruby on rails项目怎么办

2020-04-17  本文已影响0人  白练Draft

因为历史原因,手上有一个从rails2勉强升到rails3(3.2.13)的项目,那是我09年起的项目,之后如上文所述升级过一次,居然还能活到现在我自己都觉得很奇迹。
基本上不需要什么维护,但是最近接手回来,还是要改一些东西,就异常痛苦。

首先是结论,rvm是肯定不行的,rbenv可行,之后也会再研究一下docker。
其次,最新的bundle会要求ruby版本2.3.0以上,而我需要安装的是2.0.0的ruby,可通过指定版本安装来解决。
再来,本机mysql升级到了5.7.21,需要选择一个适当的mysql2的gem包才能两头兼顾。

关于如何从rvm过渡到rbenv可以参考:
中文:https://www.jianshu.com/p/a14c09a915ae
英文:https://gist.github.com/traumverloren/fa5c30056319992c4dab

正常安装后开始如下步骤:
1)用rbenv装ruby2.0.0的版本(1.8.7我是不指望了)
rbenv install 2.0.0
2)设置项目的ruby版本和gemset,这里就不累述了,参见rvm的文档即可。下面是ruby-china的指南作为参考:https://ruby-china.org/wiki/rbenv-guide
使用rbenv version检查当前ruby版本设置
使用rbenv gemset active检查当前gemset设置
3)不要安装最新版本的bundle,安装指定版本的bundle,例如1.17.3或1.15.3
gem install bundler -v '1.17.3'
4)将Gemfile中的mysql2改为'0.3.17'版本,即
gem 'mysql2', '0.3.17'
原来Gemfile里配的是0.3.10已经不支持5.7版本的mysql了
5)最后执行bundle
bundle install

另外,在安装ruby2.3.1版本时又遇到让人抓狂的问题,一直在抓openssl的1.0.2u版本,却一直在报下载失败,而且无论如何用brew switch切到已经安装的1.0.2t都固执地要去下载……
error: failed to download openssl-1.0.2u.tar.gz
这时可以尝试:
RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local/opt/openssl" rbenv install 2.3.1
此方法可用于任何拼命抓openssl而不得的版本

参考讨论串:https://github.com/rbenv/ruby-build/issues/1353

上一篇下一篇

猜你喜欢

热点阅读