Total Pageviews

Saturday, 14 May 2016

在 Mac 上用 rbenv 安装 ruby(好复杂。需要先安装 Xcode)

安装 rbenv

项目主页:https://github.com/sstephenson/rbenv
  1. 需要安装 Xcode 和 Command Line Tools
  2. 使用 git 将 rbenv 源码 clone 到本地
    git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
  3. ~/.rbenv/bin 添加到环境变量
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
  4. Add rbenv init to your shell to enable shims and autocompletion
    echo 'eval "$(rbenv init -)"' >> ~/.zshrc
  5. 重启 shell, 并测试 rbenv 是否设置正常
    exec $SHELL
    type rbenv
  6. 安装 ruby-build, 用来安装和编译 Ruby 源码
    作为 rbenv 的插件来安装
    git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

一些好用的 rbenv 插件

rbenv-update

项目主页:https://github.com/rkh/rbenv-update
安装
git clone https://github.com/rkh/rbenv-update.git ~/.rbenv/plugins/rbenv-update
使用 rbenv update 命令来更新 rbenv 以及所有插件

rbenv-gem-rehash

项目主页:https://github.com/sstephenson/rbenv-gem-rehash
不需要再手动执行 rbenv rehash 命令,它会自动执行
安装
git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash

安装 Ruby

  1. 列出可用的 Ruby 版本
    rbenv install -l
  2. 安装 Ruby 2.1.2
    rbenv install 2.1.2
  3. 列出已安装的 Ruby 版本,其中 * 号开头的是正在使用的版本
    rbenv versions
    列出正在使用的版本
    rbenv version
  4. 设置版本
    优先级依次增加
    • 全局成效
      ~/.rbenv/version 文件指明了 Ruby 的版本
      rbenv global 2.1.2
    • 对该目录生效
      在当前目录生成 .ruby-version 文件,指明了 Ruby 的版本
      rbenv local 2.1.2
      取消设置
      rbenv local --unset
    • 对当前 shell 生效
      RBENV_VERSIO 环境变量指明了 Ruby 的版本
      rbenv shell 2.1.2
      权限设置
      rbenv shell --unset
  5. 告诉 Rubygems 安装软件包的时候不安装文档
    echo "gem: --no-ri --no-rdoc" > ~/.gemrc

管理 Ruby

  • 更新 rbenv
    cd ~/.rbenv
    git pull
  • 为了让 rbenv 知道 Ruby 的所有可执行文件
    每次安装新版本的 Ruby 和安装一个 gem 后,请执行下面的命令
    rbenv rehash
  • 列出 irb 这个命令的完整路径
    rbenv which irb
    列出包含 irb 这个命令的版本
    rbenv whence irb
  • 卸载 Ruby
    • 直接用用 rm -rf 命令删除 ~/.rbenv/versions 文件夹下对应的 Ruby 版本即可
      可用 rbenv prefix 命令查看对应 Ruby 版主的目录
    • 如果安装了 ruby-build 插件,那么使用如下命令即可
      rbenv uninstall 2.1.2