平々凡々エンジニア

平凡で難しい悩みを解決

mac OS更新でrailsアプリが動作しなくなった

格闘して数日ようやく動くようになりました。 以下に直した時のメモを記載しておきます。 osのバージョンは Catalina 10.15.2

補足 OSのバージョンが変わるとそれに伴ってxcodeもバージョンが変わる可能性がありxcodeはPCのあらゆるところで使用されているっぽい(主にプログラミング系のもの)なのでxcodeの更新を待たずに何かしらのプログラムを立ち上げると変なところでバグってしまうかもしれないと感じた

詰まったエラー

xcodeが無いからbudeleが無いやrailtiesというgemが無いといった様々なこと

予測される原因

macOSの更新

解決策

bundel installをしようと試みるもxcodeが無いと言われて怒られる
xcode-select --install
xcodeをインストール
なぜか使用しているrubyのバージョンがgemと一致しなくて怒られたので rbenvをインストールしてgemと同じバージョンを指定する
rbenv install 2.1.2 でインストール
rbenv versionsインストール確認
rbenv global 2.1.2全体で使うrubyを設定
rbenv local 2.1.2カレントディレクトリーで使うrubyを設定
rbrnvでインストールしたあとはrbenv rehashする必要がある
もし切り替えできない場合は
which rubyrubyをみている場所をチェックする
/.rbenv/shims/rubyではなかった場合
~/.bash_profileファイルに
export PATH="~/.rbenv/shims:/usr/local/bin:$PATH"</br> eval "$(rbenv init -)"を記載して
source ~/.bash_profile変更反映させる

gemが怪しいのでbundle installしたら以下のエラーが出た
Thebundle' command exists in these Ruby versions:
bundleが無いようなので
gem install bundlerでbundleをインストールする
/Users/mannbou/.rbenv/versions/2.3.7/lib/ruby/2.3.0/rubygems.rb:241:inbin_path': can't find gem railties (>= 0.a) (Gem::GemNotFoundException) from /usr/local/bin/rails:22:in <main>'
railtiesというgemが見えないエラーが吐き出される

rails githubから
railtiesとは
簡単に説明するとフレームワークを統合して処理するもの
主にプロセス管理やrailsコマンドライン管理、ジェネレータコア提供をする
ダウンロードの項目に
gem install railtiesと記載されていることからrailsプロジェクトの一部として
railtiesgem(パッケージ)をダウンロードできる
このことからgem install railtiesを実行するとエラー解消できそうだが
そもそもrailsフレームワークの依存しているgemが抜け落ちているのは普通に考えると ありえないことなのでrails全体に不具合がありそうなので
gem install railsコマンドを使い再度入れ直す(依存関係などを修復する)

以上で解決した...が実際にはもっと色々試行錯誤しているので直った原因と思われる手順を 示しているだけなので注意してください