owned mediaウェブ制作に役立つコンテンツを発信中!

rbenvをインストールしてRubyのバージョン管理をできるようにする

おなじみのプログラミング言語であるRubyですが、そのままインストールすることも可能ですが、様々なバージョンを使うシーンになった時には都度アンインストールしてバージョンを変えてインストールするなど手間がかかります。今回はrbenvというRubyのバージョン管理ツールを使ってRubyをインストールすることでバージョンの管理だけでなく、様々なバージョンに切り替えられるようにします。  
rbenvのインストールから初期設定
まずはrbenvをインストールしていきます。Gitの公式リポジトリからのインストールでも可能ですが、今回はHomebrew経由でインストールしていきます。Homebrewについて詳しくは過去記事「WEB開発環境(Mac OS)に必要な各種インストール方法まとめ(1)」を参照ください。念のためHomebrewも最新版に更新しておきます。
$ brew update
$ brew install readline ruby-build rbenv
  rbenvがインストールできたかを確認します。バージョン名が表示されたらOKです。
$ rbenv --version
  rbenvでインストールできるRubyのバージョン一覧確認します。コマンドを叩くと対象となるバージョンがリストで表示されるので、ここからインストールするバージョンを選択していきます。
$ rbenv install -l
  先ほどのリストから対象となるRubyをrbenv経由でバージョンを指定してインストールしていきます。
$ rbenv install [バージョン名]
  rbenvでインストール済みのRubyをバージョンごとに一覧で確認しておきます。インストール済みのバージョンが一覧で表示されますので、ここにあるバージョンからそれぞれ切り替えることができます。
$ rbenv versions
  rbenvでインストールしたRubyの環境変数PATHを通すために.bash_profileをvimで開き、次の設定を追記していきます。
$ vim .bash_profile
// .bash_profileに下記を追記
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
  下記のコマンドで.bash_profileの設定を反映させます。
$ source .bash_profile
  .bash_profileに設定したRubyの環境変数が正しく通っているか確認します。
$ which ruby
// 下記のように.rbenv/shims配下のrubyを参照していればOK
/Users/[ユーザー名]/.rbenv/shims/ruby
   
Rubyのバージョン管理とバージョンの切り替えを行う
rbenv経由でインストールした各バージョンのRubyは一括で管理でき、プロジェクトごとにバージョンを切り替えたりすることができます。まずはデフォルトのバージョンとしてローカルのグローバルへのバージョンを指定しておきます。
$ rbenv global [バージョン名]
  正しくバージョンが指定されたか確認します。
$ rbenv versions
// 指定したバージョンに*マークが付く
  system
  2.4.0
* 2.5.0 (set by /Users/[バージョン名]/.rbenv/version)
  プロジェクトごとにRubyのバージョンを切り替えて指定する場合は、まず該当するプロジェクトのカレントディレクトリへ移動し、下記のコマンドで設定します。
$ cd [カレントディレクトリ名]
$ rbenv local [バージョン名]
  また、rbenv経由でインストールしたRubyは次のコマンドでバージョンごとにアンインストールできます。
$ rbenv uninstall [バージョン名]
  プロジェクトごとに切り替えて設定したバージョンは下記のコマンドでリセットできます。この場合はデフォルトのRubyのバージョンが適用されるようになります。
$ cd [カレントディレクトリ名]
$ rbenv local --unset
 
  Rubyも直接インストールするのではなく、このようなバージョン管理ツールを使うことで、後々ラクになることも多々あります。できれば導入することをオススメします。   (参考にさせていただいたサイト様) rbenv をインストールしたので覚書
  • はてなブックマーク
  • Pocket
  • Linkedin
  • Feedly

この記事を書いた人

Twitter

sponserd

    keyword search

    recent posts

    • Twitter
    • Github
    contact usscroll to top
      • Facebook
      • Twitter
      • Github
      • Instagram