Rubyバージョン指定エラーの解決方法: Gemfile requires 2.7.5
エラー対処
問題の説明
React Nativeプロジェクトをnpx react-native init
コマンドで作成する際、次のエラーが発生する場合があります:
Your Ruby version is 2.6.8, but your Gemfile specified 2.7.5
この問題は主に以下の環境で発生します:
- macOS Monterey以上
- HomebrewでインストールしたRuby
- React Native CLIによるプロジェクト生成時
- CocoaPods関連の処理中に発生
エラーの本質的原因は、システムのRubyバージョンとReact Nativeプロジェクトが要求するRubyバージョンの不一致にあります。React NativeのiOSビルドシステムは特定バージョンのRubyを必要とするため、適切な環境設定が必要です。
重要な前提条件
- Homebrewがインストールされていること
- ターミナルで
brew --version
が動作すること - Rubyのバージョン管理ツール(rbenvなど)を使うことが推奨されます
根本的解決方法:Rubyバージョンマネージャーの使用
システム全体のRubyを変更せずに、プロジェクトごとに適切なバージョンを管理する方法が推奨されます。
rbenvを使った解決手順 (推奨)
ステップ1: rbenvのインストール
# Homebrewで必要パッケージを更新・インストール
brew update
brew install rbenv ruby-build
# rbenvをシェルに統合
echo 'eval "$(rbenv init -)"' >> ~/.zshrc # Zshの場合
# echo 'eval "$(rbenv init -)"' >> ~/.bashrc # Bashの場合
# 設定をリロード
source ~/.zshrc # または source ~/.bashrc
ステップ2: 必要なRubyバージョンのインストールと設定
# Ruby 2.7.5をインストール
rbenv install 2.7.5
# グローバルなデフォルトバージョンに設定
rbenv global 2.7.5
# 設定の確認
ruby -v # => ruby 2.7.5... と表示されること
ステップ3: プロジェクトの再作成
# キャッシュをクリア
rm -rf ~/Library/Caches/Homebrew
# プロジェクト作成
npx react-native init AwesomeProject
# バージョン確認
ruby -v
# Homebrewキャッシュクリア
rm -rf ~/Library/Caches/Homebrew
rvmを使う方法 (代替案)
# rvmインストール
curl -sSL https://get.rvm.io | bash -s stable
# Ruby 2.7.5のインストール
rvm install 2.7.5
rvm use 2.7.5 --default
# 確認
rvm list
トラブルシューティングと代替手法
プロジェクト生成後のフォローアップ
プロジェクトが一部生成された後にエラーが出る場合の対処法:
# 生成されたプロジェクトフォルダに移動
cd AwesomeProject/ios
# Bundlerで依存関係を解決
bundle install
bundle exec pod install
# 元のフォルダに戻ってプロジェクト実行
cd ..
npx react-native run-ios
Gemfileを直接編集する方法(一時的対処)
注意
この方法は推奨されませんが、緊急時の回避策として使用できます。完全解決にはバージョンマネージャーを使用してください。
- プロジェクトフォルダ内のGemfileを開く:
cd AwesomeProject/ios
nano Gemfile
- バージョン指定をシステムと一致するように変更:
# 変更前
ruby '2.7.5'
# 変更後(システムのバージョンによって調整)
ruby '2.6.8'
- 依存関係の再インストール:
bundle install && bundle exec pod install
頻出問題と予防措置
システムRubyに関する警告
重要な原則
macOSのシステムRubyは変更しないでください。 OSの機能に依存しているため、破壊的な変更を引き起こす可能性があります。
- システムRubyの確認:
/usr/bin/ruby
- ユーザーRubyの確認:
/usr/local/bin/ruby
常にrbenvやrvmでユーザー領域のみでRubyを管理しましょう。
CocoaPodsインストールのベストプラクティス
# rbenv環境での正しいインストール方法
gem install cocoapods
# システムRubyを使用しない明示的なPATH指定(回避策)
sudo gem install -n /usr/local/bin ffi cocoapods
環境設定の確認フロー
以下のコマンドで環境正常性を確認できます:
echo "Ruby Version: $(ruby -v)"
echo "rbenv versions: $(rbenv versions)"
echo "Gem Path: $(gem env home)"
結論
Your Ruby version is x.x.x, but your Gemfile specified x.x.x
エラーへの最適解は:
- rbenv/rvmで正確なRubyバージョンを管理
- グローバルバージョンをプロジェクト要件に一致させる
- システムRubyを変更せずユーザー領域で管理
React Nativeプロジェクトの安定性のためには、バージョンマネージャーの使用が必須です。エラーが解決しない場合は、~/Library/Caches
ディレクトリをクリアし、システムを再起動すると有効な場合があります。