rbenv

バージョン管理Ruby開発環境CLIUNIX系ツール

GitHub概要

rbenv/rbenv

Manage your app's Ruby environment

ホームページ:https://rbenv.org/
スター16,455
ウォッチ297
フォーク1,423
作成日:2011年8月1日
言語:Shell
ライセンス:MIT License

トピックス

bashrubyruby-installationruby-versionsshell

スター履歴

rbenv/rbenv Star History
データ取得日時: 2025/7/20 02:56

言語バージョン管理ツール

rbenv

概要

rbenvは、Rubyの複数バージョンを管理するためのシンプルで軽量なツールです。各プロジェクトで異なるRubyバージョンを使用でき、グローバルなRuby環境に影響を与えません。rbenvはrvmよりもシンプルで、UNIX的な設計思想に基づいて開発されています。

詳細

主な特徴

  • ミニマリストな設計: コア機能に集中したシンプルな構造
  • 透過的なshimシステム: PATHにshimを追加してRubyコマンドをインターセプト
  • プラグインアーキテクチャ: ruby-buildなどで機能拡張
  • .ruby-versionファイル: プロジェクトごとの自動バージョン切り替え
  • 環境変数不要: RVMのような複雑な環境変数設定が不要
  • 高速動作: 軽量な実装により起動が高速

動作原理

rbenvは~/.rbenv/shimsディレクトリをPATHの先頭に配置し、Rubyコマンドの実行をインターセプトします。実行時に適切なRubyバージョンを判定し、該当するバージョンのコマンドを実行します。

バージョン優先順位

  1. RBENV_VERSION環境変数
  2. カレントディレクトリの.ruby-versionファイル
  3. 親ディレクトリの.ruby-versionファイル(再帰的に検索)
  4. グローバル設定(~/.rbenv/version)
  5. システムRuby

メリット・デメリット

メリット

  • シンプルさ: RVMと比較して仕組みがシンプルで理解しやすい
  • 軽量: 最小限の機能で高速動作
  • プロジェクト分離: プロジェクトごとに独立したRuby環境
  • Bundlerとの相性: Bundlerと組み合わせた使用が簡単
  • シェル非依存: bashrc/zshrcへの影響が最小限
  • 透明性: 動作が予測可能で、トラブルシューティングが容易

デメリット

  • 機能限定: gemsetなどの高度な機能はない
  • 手動インストール: ruby-buildプラグインが別途必要
  • Windows非対応: ネイティブWindowsでは動作しない
  • 初期設定: シェル設定ファイルの編集が必要
  • ビルド時間: Rubyをソースからビルドするため時間がかかる

参考ページ

書き方の例

インストール(Linux/macOS)

# Gitクローンによるインストール
git clone https://github.com/rbenv/rbenv.git ~/.rbenv

# macOSではHomebrewも使用可能
brew install rbenv

# ruby-buildプラグインのインストール(Rubyのインストールに必要)
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

# macOSでruby-buildをインストール
brew install ruby-build

シェル設定(.bashrcまたは.zshrcに追加)

# rbenvのパス設定
export PATH="$HOME/.rbenv/bin:$PATH"

# rbenvの初期化
eval "$(rbenv init -)"

# 設定を反映
source ~/.bashrc  # または source ~/.zshrc

ビルド依存関係のインストール

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y build-essential libssl-dev libreadline-dev \
zlib1g-dev libffi-dev libyaml-dev libgdbm-dev libncurses5-dev

# CentOS/RHEL/Fedora
sudo yum install -y gcc openssl-devel readline-devel zlib-devel \
libffi-devel libyaml-devel gdbm-devel ncurses-devel

# macOS (Xcodeコマンドラインツールが必要)
xcode-select --install

基本的な使い方

# 利用可能なRubyバージョンの一覧表示
rbenv install --list

# 特定バージョンのインストール
rbenv install 3.3.0
rbenv install 3.2.3
rbenv install jruby-9.4.5.0

# インストール済みバージョンの確認
rbenv versions

# グローバルバージョンの設定
rbenv global 3.3.0

# 現在のバージョン確認
rbenv version
ruby --version

プロジェクトごとの管理

# プロジェクトディレクトリに移動
cd /path/to/my-rails-app

# このプロジェクト用のRubyバージョンを設定
rbenv local 3.2.3

# .ruby-versionファイルが作成される
cat .ruby-version
# 3.2.3

# 別のプロジェクトで異なるバージョンを使用
cd /path/to/another-project
rbenv local 3.1.4
ruby --version  # ruby 3.1.4

一時的なバージョン切り替え

# 現在のシェルセッションのみでバージョンを変更
rbenv shell 3.0.6

# 環境変数での指定も可能
export RBENV_VERSION=3.0.6

# 元に戻す
rbenv shell --unset
# または
unset RBENV_VERSION

Bundlerとの連携

# Bundlerのインストール
gem install bundler

# プロジェクトでBundlerを使用
cd /path/to/my-project
bundle init

# Gemfileに依存関係を記述
echo 'gem "rails", "~> 7.1.0"' >> Gemfile

# 依存関係のインストール
bundle install

# rbenvでrehashを実行(新しいgemのコマンドを認識)
rbenv rehash

便利なコマンド

# インストール可能なRubyバージョンをすべて表示
rbenv install --list-all

# 現在使用中のRubyのパスを表示
rbenv which ruby

# 特定のコマンドがどのバージョンで実行されるか確認
rbenv which irb

# shimの再生成(新しいgemをインストールした後)
rbenv rehash

# rbenv自体のアップデート
cd ~/.rbenv
git pull

# ruby-buildのアップデート
cd ~/.rbenv/plugins/ruby-build
git pull