rbenv
首先尺栖,使用rbenv而不是rvm浙宜,關(guān)于如何從rvm過渡到rbenv可以參考:
中文:http://www.reibang.com/p/a14c09a915ae
英文:https://gist.github.com/traumverloren/fa5c30056319992c4dab
openssl
然后是openssl,較老版本的ruby使用的是1.0.2t之類的版本翘狱,最新則是1.1.1d之類。
rvm下對openssl的處理方式不再說明,rbenv有更加通用的方法可以解決遇革。
需要注意的是,在使用openssl version
查出來如果是libressl揭糕,可以不處理(主要是沒有一勞永逸的終極處理方式)
其實也可以參考:http://www.reibang.com/p/3b1444a1e1de
但我最終發(fā)現(xiàn)這種處理方式也是一次性的萝快,每次都需要手動switch
附手動安裝openssl方法參考
brew install rbenv/tap/openssl@1.0
或者簡單地 brew install openssl
ruby
以安裝ruby2.3.1為例,執(zhí)行
rbenv install 2.3.1
rbenv會自動去下載對應(yīng)的openssl版本著角,但也會存在一種情況揪漩,即本地已經(jīng)安裝了可用的openssl版本,但rbenv仍然在從遠端抓取并且下載不下來吏口,因此收到報錯
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
無論裝老的2.3.1還是最新的2.7.1奄容,這個方法都可行。
gemset
設(shè)置項目的ruby版本和gemset产徊,這里就不累述了昂勒,參見rvm的文檔即可。下面是ruby-china的指南作為參考:https://ruby-china.org/wiki/rbenv-guide
使用rbenv version
檢查當前ruby版本設(shè)置
使用rbenv gemset active
檢查當前gemset設(shè)置
bundler
最新的bundle會對ruby版本有要求舟铜,比如ruby2.3.0以上戈盈,而需要在較老版本的ruby中使用,如ruby2.0.0谆刨,可通過指定版本安裝來解決塘娶,例如bundle1.17.3
gem install bundler -v '1.17.3'
1.17.3归斤、1.16.2、1.15.3都是比較靠譜的版本(吧?)
mysql
如果ruby版本過老血柳,而mysql版本比較高官册,則會連不上mysql。
一種方式是把mysql降下來难捌,例如降到5.6以下膝宁,另一種方式是選一個合適的mysql2的gem版本。
對于ruby2.0.0和mysql5.7根吁,目前實踐下來员淫,可用的mysql2版本為0.3.17,即將Gemfile中的mysql2改為'0.3.17'版本
gem 'mysql2', '0.3.17'
bundle install
對于已有的老項目击敌,在完成上述操作后介返,直接執(zhí)行bundle install
即可
如果是新項目應(yīng)該不存在以上問題啦!裝新的ruby和新的rails就好啦沃斤!