rbenv
GitHub概要
スター16,455
ウォッチ297
フォーク1,423
作成日:2011年8月1日
言語:Shell
ライセンス:MIT License
トピックス
bashrubyruby-installationruby-versionsshell
スター履歴
データ取得日時: 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バージョンを判定し、該当するバージョンのコマンドを実行します。
バージョン優先順位
- RBENV_VERSION環境変数
- カレントディレクトリの.ruby-versionファイル
- 親ディレクトリの.ruby-versionファイル(再帰的に検索)
- グローバル設定(~/.rbenv/version)
- システム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