コトの顛末
EC2に自分の作ったアプリをgit cloneしまして「さて、bundle installじゃ!」という時に、
エラーが出まくり。どうやらrvenvをアンインストールして、再度入れ直すと良いという事が書いある記事を見たのでやろうとしたら、タイムアウトしていたよう。
ローカル場でコマンドを打ち込んでしまい、PCからrvenvをアンインストールされrails起動しなくなってしまいました。
勉強中の身ではありますが、開発中の出来事で発狂しそうになり、
物理以外で初めて鼻血が出ました。
もう一度入れようとするとクセあり
最初に環境構築したように、普通にrvenvをもう一度インストールすればいいんでしょ?って思ったらそうも行かず。
rvenvのインストールはうまく行くのですが、
そのあとにbundlerを入れるくだりで下記のようなエラーが出る。
$ gem install bundler
ERROR: While executing gem ... (Errno::EACCES)
Permission denied @ rb_sysopen - /Users/okachan/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.2/CHANGELOG.md
これを解決するためには「/Users/(ユーザー名)/.rvenv/versions」配下にあるファイルに書き込む権限がないからコマンドが通らないそう。
書き込みできるように権限を変更するコマンドを入力してから、再度入れ直すという流れになります。
権限を変更するくだり
$ sudo chown -R okachan:staff /Users/okachan/.rbenv/
[okachan]の部分がご自身のユーザー名が入ります。
パスワードを聞かれるので自身のPCのパスワードを入力。
logもでず、スン...と完了するのでちゃんと変更できているか確認します。
権限変更できたか確認するくだり
$ ls -la
これをすると下記のような結果が出ます。
~略~
drwxr-xr-x 4 okachan staff 128 8 14 21:28 versions
~略~
上記に似た感じのlogが30行くらい出てくるので.versionsを確認
staffに変更されているので構築用のコマンド入れていきましょう。
rails sするために必要なコマンドを入れるくだり
$ gem install bundler
$ gem install rails
これで足りないものがインストールされています。
「$ rails -v」でrails入っているか確認してバージョンが表示されていればOK。
何かのサイトを「rails s」をすると
下記のようなエラーが出ます。
$ rails s
Could not find rake-13.0.0 in any of the sources
Run `bundle install` to install missing gems.
サイトもbundle installしてあげましょう。
全部のgemを再度installし直しているらしく結構時間がかかります。
さて、gemインストールできましたら、rails sしてみてください。
これでできるはずです!
おわりに
これをやらかした時に、検索してもただインストールし直す記事ばかり引っかかって、解決法にたどり着けませんでした。
自分だけなのでは?
変なコマンドいれたからもう直らないのでは?
これは解決する問題なのだろうか?
と途方にくれましたが、根気よく探したら同じような状況の記事があり助かりました。
助かるうううう
タイムアウトの確認を必ずするクセつけないと、いけないと感じました。
参考記事
Rails cが実行不可能、Permission denied @ rb_sysopen – /Users/…の対応策
http://infinity108.com/114/
Ruby on Railsの導入方法とエラー対処
https://qiita.com/raihara3/items/8ea7228b36e82a1b0eab