はじめに
昨日、MacでRails + MySQLの開発環境をセットアップしていたら、思わぬトラブルに見舞われました。
「Railsが動かない」「rbenvの設定がうまくいかない」など、エラーの連続…。
いろいろ試したけど解決せず、競合やバージョン違いを疑いましたが、実はプロジェクトをiCloud Driveの同期フォルダに入れていたことが原因でした。
これは過去にも、iCloud Driveの同期が影響して音楽系のソフトが正常に動作しなかったことがあったので、それと同じ問題だったようです。
この経験を共有し、同じ問題に悩む開発者の参考になればと思います。
試したことと解決しなかったこと
1. rails db:create
でエラー発生 (NameError: uninitialized constant Logger
)
問題発生
% rails db:create
/Users/robot/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0/gems/activesupport-7.0.8.7/... (略)
NameError: uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger
試したこと
-
bundle update activesupport
でバージョンを更新 -
gem pristine --all
でGemを再インストール -
rbenv rehash
を実行 -
.zshrc
の設定を見直し、環境変数を修正 -
brew reinstall rbenv
で再インストール -
bundle install
で依存関係を再インストール
→ それでも Logger のエラーは解決しませんでした。
2. rails
コマンドがそもそも効かなくなる
問題発生
% rails -v
Could not find activesupport-7.0.8.7
試したこと
-
gem list rails
で確認し、bundle install
で修正 -
bundle exec rails -v
を試すも同じエラー -
rbenv global 3.2.0
でバージョンの明示的指定 -
.rbenv/versions
に異常がないか確認
→ それでも rails
コマンドは動作せず。
最終的な原因:iCloud Drive の影響
ここまで色々試したが、Logger のエラーは解決しないままだった。しかし、ふと「プロジェクトを iCloud Drive のフォルダに保存していること」に気づいた。
プロジェクトを iCloud Drive の外 (~/dropbox/projects/
など) に移動したところ、全ての問題が解決!
iCloud Drive は同期処理が入るため、一部のファイルが正しく認識されなかったり、Rails の動作に影響を与えることがあるようだ。
過去にも、iCloud Drive の同期が原因で音楽系ソフトがうまく動かなかった経験があるので、同じような問題だったのかもしれない。
学びとまとめ
今回のトラブルシューティングで得た教訓:
-
エラーメッセージをしっかり読む → ログ (
tail -n 50
など) を確認する -
バージョンの競合を疑う →
bundle update
、gem pristine --all
で修正 -
環境変数 (
PATH
) の整理を意識する →.zshrc
ではなく.zshenv
を活用 - プロジェクトは iCloud Drive に保存しない → Rails や MySQL が適切に動作しなくなる可能性がある
この経験を活かして、今後はスムーズに環境構築できるはず!
同じ問題に悩んでいる方の参考になれば幸いです🙏
参考リンク
もし「こういうエラーもあったよ!」という方がいたら、ぜひコメントで教えてください!