frum
GitHub概要
TaKO8Ki/frum
A little bit fast and modern Ruby version manager written in Rust
スター646
ウォッチ8
フォーク14
作成日:2021年3月8日
言語:Rust
ライセンス:MIT License
トピックス
farmrbenvrubyrustversion-manager
スター履歴
データ取得日時: 2025/7/20 02:56
言語バージョン管理ツール
frum(Fast Ruby Version Manager)
概要
frumは、Rustで実装された高速でモダンなRubyバージョン管理ツールです。2021年に登場した新しいツールで、rbenvより約7秒速く、shimを使わない直接的なアプローチにより圧倒的な速度を実現しています。インストーラーも内蔵しており、追加のツールなしでRubyのインストールから管理まで完結できます。
詳細
主な特徴
- Rust実装: システムプログラミング言語による高速実行
- 超高速: rbenvと比較して桁違いの速度改善
- オールインワン: Rubyインストーラー内蔵で追加ツール不要
- shimレス: プロキシを使わない直接実行
- 依存関係なし: 単一のRust実行ファイルで完結
- クロスプラットフォーム: Linux、macOS、Windowsサポート(WSL推奨)
技術的優位性
frumの速度優位性は以下の設計判断によるものです:
- ネイティブバイナリ: Rustでコンパイルされた単一実行ファイル
- 直接PATH操作: shimやラッパースクリプトを介さない
- 効率的なキャッシュ: Rust の所有権システムによる最適化
- 並列処理: Rustの安全な並行性を活用
2024年の評価
- 「速度と機能のバランスを求めるならfrum」と評価
- asdfが遅いと感じる場合の推奨代替手段
- Rust製ツールの成熟により安定性も向上
メリット・デメリット
メリット
- 圧倒的な速度: 起動とバージョン切り替えが瞬時
- シンプルなインストール: Homebrewやwingetで一発インストール
- 統合インストーラー: ruby-buildやruby-install不要
- メモリ効率: Rust実装による最小メモリ使用
- モダンな設計: 2020年代の開発環境に最適化
- 設定の柔軟性: インストール時のオプション指定が容易
デメリット
- 歴史が浅い: 2021年リリースでコミュニティがまだ小さい
- 機能限定: プラグインシステムなどの拡張性なし
- rbenv互換性不完全: すべてのrbenv機能をサポートしていない
- ドキュメント不足: 公式ドキュメントがまだ発展途上
- エッジケース: 特殊な環境での動作報告が少ない
参考ページ
書き方の例
インストール
# Homebrewでインストール(macOS/Linux推奨)
brew install frum
# Cargoでインストール(Rust環境がある場合)
cargo install frum
# wingetでインストール(Windows)
winget install TaKO8Ki.frum
# バイナリを直接ダウンロード
# GitHubのReleasesページから最新版をダウンロード
wget https://github.com/TaKO8Ki/frum/releases/latest/download/frum-{version}-{platform}.tar.gz
tar -xzf frum-{version}-{platform}.tar.gz
sudo mv frum /usr/local/bin/
シェル設定
# ~/.bashrcに追加
eval "$(frum init)"
# ~/.zshrcに追加
eval "$(frum init)"
# fishの場合(~/.config/fish/config.fish)
frum init | source
# PowerShellの場合(Windows)
Invoke-Expression (& frum init)
基本的な使い方
# 利用可能なRubyバージョンを表示
frum install --list
frum install -l
# 最新の安定版をインストール
frum install
# 特定バージョンをインストール
frum install 3.3.0
frum install 3.2.3
# インストール済みバージョンの確認
frum list
frum ls
# グローバルバージョンの設定
frum global 3.3.0
# 現在のバージョン確認
frum current
ruby --version
インストールオプション
# OpenSSLディレクトリを指定
frum install 3.3.0 --with-openssl-dir=/usr/local/opt/openssl
# jemallocを有効にしてインストール
frum install 3.3.0 --with-jemalloc
# 複数のオプションを指定
frum install 3.3.0 \
--with-openssl-dir=/usr/local/opt/openssl \
--with-readline-dir=/usr/local/opt/readline \
--enable-shared
# デバッグシンボル付きでインストール
frum install 3.3.0 --enable-debug
プロジェクトごとの管理
# プロジェクトディレクトリで設定
cd /path/to/myproject
# ローカルバージョンを設定(.ruby-versionファイル作成)
frum local 3.3.0
# .ruby-versionファイルの確認
cat .ruby-version
# 3.3.0
# ディレクトリ移動時の自動切り替え
cd ..
frum current # グローバルまたは親の設定
cd myproject
frum current # 3.3.0に自動切り替え
バージョン管理
# 一時的なバージョン切り替え(現在のシェルのみ)
frum shell 3.2.3
ruby --version # 3.2.3
# シェルを終了すると元に戻る
exit
ruby --version # 元のバージョン
# 特定のコマンドを別バージョンで実行
frum exec 3.2.3 -- ruby script.rb
frum exec 3.2.3 -- bundle install
# アンインストール
frum uninstall 3.1.0
高度な使い方
# バージョンのエイリアス設定
frum alias create stable 3.3.0
frum global stable
# エイリアスの一覧
frum alias list
# エイリアスの削除
frum alias delete stable
# 環境変数の確認
echo $FRUM_DIR # frumのインストールディレクトリ
echo $FRUM_RUBY_BUILD_MIRROR # カスタムミラーURL(設定時)
# キャッシュのクリア
frum cache clear
Bundlerとの連携
# プロジェクトセットアップ
mkdir myapp && cd myapp
frum local 3.3.0
# Bundlerのインストール
gem install bundler
# Gemfileの作成と依存関係インストール
bundle init
bundle add rails
bundle install
# .ruby-versionをバージョン管理に含める
git add .ruby-version Gemfile Gemfile.lock
git commit -m "Setup Ruby 3.3.0 with dependencies"
CI/CD環境での使用
# GitHub Actionsでの例
# .github/workflows/ci.yml
- name: Install frum
run: |
curl -L https://github.com/TaKO8Ki/frum/releases/latest/download/frum-linux.tar.gz | tar xz
sudo mv frum /usr/local/bin/
- name: Setup Ruby
run: |
frum install $(cat .ruby-version)
frum global $(cat .ruby-version)
- name: Install dependencies
run: bundle install
トラブルシューティング
# frumの動作確認
frum --version
which frum
# デバッグモードで実行
FRUM_DEBUG=1 frum install 3.3.0
# インストールログの確認
cat ~/.frum/install.log
# 設定のリセット
rm -rf ~/.frum
eval "$(frum init)"
# パスの確認
echo $PATH | grep frum
# 手動でパスを追加(一時的)
export PATH="$HOME/.frum/bin:$PATH"