やる気がストロングZERO

やる気のストロングスタイル

brew upgradeしたらrailsが起動しなくなったので対応したメモ

久々にbrew upgradeを実行したらopensslのなんかが読み込めなかっただかなんだか言われて、railsが起動しなくなった。

bundleもbrewも「ほしいライブラリを便利にインストールしてくれるツール」くらいの認識であまりどういう動きをしているか認識してなくて対応にちょっと苦労したのでメモ。
※あまり内部を意識せずに使えるツールなので、どういうものなのかすぐ忘れてしまう。。

作業ログ

  • brew gradeした。その後railsで使っているgemの一つが[opensslが読み込めない]とかいうエラーを出して起動できなくなった。
  • よくわかってないまま、bundle installを実行して(エラー無く終了)再度railsを起動しようとしたが同じ状況
  • 他にもググって出てくるコマンドを実行してミドルウェアインストールとかなんだかんだした。=>が解決せず。
  • gem,brew,bundlerについてちょっと調べた
  • brew upgradeでopensslのバイナリの場所が変わってしまったかしたのが原因?今のgemライブラリは依然古い方を見に行ってしまっているのかと推測。
  • opensslはmac上に使える状態で存在はしているので、再度gemライブラリをinstallし直せばなんか違いが起こる気がする。
  • bundle installを実行したが、たぶん既にライブラリが存在しているため再インストールは実行されていないと推測
  • vendor/bundle/ruby/2.x.xの2.x.xのディレクトリ名を変更して(存在しないことにして)再度bundle installを実行
  • pgのインストールでコケる。
  • エラーメッセージを見ると「/usr/local/Cellar/postgresql@9.4/9.4.11/bin/pg_configが無い」とか言ってる。見てみるとたしかに無い。
  • brew install postgresql@9.4実行してみる
  • 似たようなフォルダできたけど9.4.11ではない。/usr/local/Cellar/postgresql@9.4/9.4.26/bin/pg_configはある。
  • ていうか、存在してないような9.4.11のpg_configを使おうとしているあたり、どこかでそんな設定を自分でしていると予想
  • railsのroot/.bundle/configにpgに対して/usr/local/Cellar/postgresql@9.4/9.4.11/bin/pg_configを使うように設定がされているのを発見(たぶん入社時に言われるがままに設定した※覚えてない)
  • 設定を削除。brew コマンドでpostgresqlbrewpostgresql@9.4を使うように設定。brew link --force postgresql@9.4(しなくてもよかったかも。)
  • bundle installを実行。全部正常にインストールされる
  • railsが起動した

調べたこと

bundler

gemの依存ライブラリまでバージョンを固定管理したり、環境毎にgemライブラリを独立させたりできるツール。
このツールでインストールされるgemライブラリは、自分の環境では、railsのroot/vendor/bundle/ruby/x.x.x/以下にはいってた。

homebrew

macミドルウェアとかツールをインストールするのに便利なツール。
/usr/local/Cellar/以下にインストールしたプログラムのバイナリとか入ってる。
どうやってpathに入っているのかとかはあまり調べてない。
opensslはこっちで入れておく必要がある(gemライブラリはよくこれをつかうっぽい)

まとめ

仕事中に環境が壊れると焦って、エラーメッセージでググって出てきた「このコマンドをたたくとOK」みたいなやつを実行してしまいがち。 そして余計に環境が汚れていく(自分でなにをしているのかわかってない)
ゆっくり落ち着いて、扱っているものがどういうものなのか把握して対応していかないとだめだなと思った。