rbenv mysql_ruby on rails mac环境配置cheat

本文介绍了在Mac上使用rbenv配置ruby环境,包括安装openssl、解决ruby版本与openssl版本不匹配的问题、设置gemsets、处理bundle版本与ruby版本的兼容性,以及在旧版ruby中连接新版本mysql的解决方案。
摘要由CSDN通过智能技术生成

rbenv

openssl

然后是openssl,较老版本的ruby使用的是1.0.2t之类的版本,最新则是1.1.1d之类。

rvm下对openssl的处理方式不再说明,rbenv有更加通用的方法可以解决。

需要注意的是,在使用openssl version查出来如果是libressl,可以不处理(主要是没有一劳永逸的终极处理方式)

其实也可以参考:https://www.jianshu.com/p/3b1444a1e1de

但我最终发现这种处理方式也是一次性的,每次都需要手动switch

附手动安装openssl方法参考

brew install rbenv/tap/openssl@1.0 或者简单地 brew install openssl

ruby

以安装ruby2.3.1为例,执行

rbenv install 2.3.1

rbenv会自动去下载对应的openssl版本,但也会存在一种情况,即本地已经安装了可用的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

设置项目的ruby版本和gemset,这里就不累述了,参见rvm的文档即可。下面是ruby-china的指南作为参考:https://ruby-china.org/wiki/rbenv-guide

使用rbenv version检查当前ruby版本设置

使用rbenv gemset active检查当前gemset设置

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

对于已有的老项目,在完成上述操作后,直接执行bundle install即可

如果是新项目应该不存在以上问题啦!装新的ruby和新的rails就好啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值