美文网首页
ruby on rails mac环境配置cheat

ruby on rails mac环境配置cheat

作者: 白练Draft | 来源:发表于2020-04-17 16:06 被阅读0次
    rbenv

    首先,使用rbenv而不是rvm,关于如何从rvm过渡到rbenv可以参考:
    中文:https://www.jianshu.com/p/a14c09a915ae
    英文:https://gist.github.com/traumverloren/fa5c30056319992c4dab

    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就好啦!

    相关文章

      网友评论

          本文标题:ruby on rails mac环境配置cheat

          本文链接:https://www.haomeiwen.com/subject/tojyvhtx.html