前提
RailsチュートリアルをAWS Cloud9を使ってやってます。
windowsで火狐使ってます。
困ったこと
厳密には困ってはないのですが、Railsコンソール終了時にエラーが発生していました。
特に使えないわけではないですがちゃんと見てみることに。
以下出ていたエラーです。
/usr/local/rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/irb/ext/save-history.rb:98:in `initialize': Permission denied @ rb_sysopen - /usr/local/rvm/rubies/ruby-2.4.1/.irbrc_history (Errno::EACCES)
見てみると「/usr/local/rvm/rubies/ruby-2.4.1/.irbrc_history」に権限がないとのこと(Permission denied)。
「/usr/local/rvm/rubies/ruby-2.4.1」に飛んでファイルを確認すると
そもそもファイルがない。
ec2-user:/usr/local/rvm/rubies/ruby-2.4.1 $ cd /usr/local/rvm/rubies/ruby-2.4.1/
ec2-user:/usr/local/rvm/rubies/ruby-2.4.1 $ ls -a
. .. bin config include .irbrc lib patches.list share
んでもう一回エラーを見ると「save-history.rb」でエラーが起きている。つまり履歴を出力しようとして落ちているかな~と推測(今までずっとエラーだったのでファイルがないのもそのせいかなと)。
ディレクトリ自体に権限がないのかなと思い、「/usr/local/rvm/rubies/ruby-2.4.1」の権限を確認。
ec2-user:/usr/local/rvm/rubies $ ls -l
total 4
lrwxrwxrwx 1 root rvm 32 Dec 3 09:43 default -> /usr/local/rvm/rubies/ruby-2.4.1
drwxrwxr-x 6 root rvm 4096 Dec 3 09:43 ruby-2.4.1
今のユーザーに書き込み権限がなかったので、権限付与して確認。
ec2-user:/usr/local/rvm/rubies $ chmod a+w ruby-2.4.1/
chmod: changing permissions of ‘ruby-2.4.1/’: Operation not permitted
ec2-user:/usr/local/rvm/rubies $ sudo chmod a+w ruby-2.4.1/
ec2-user:/usr/local/rvm/rubies $ ls -l
total 4
lrwxrwxrwx 1 root rvm 32 Dec 3 09:43 default -> /usr/local/rvm/rubies/ruby-2.4.1
drwxrwxrwx 6 root rvm 4096 Dec 3 09:43 ruby-2.4.1
権限がついたのを確認できたので、Railsコンソールを起動して終了させると正常終了しました!
実際に問題のディレクトリ見ると今度は「.irbrc_history」がありました。
ec2-user:/usr/local/rvm/rubies/ruby-2.4.1 $ ls -a
. .. bin config include .irbrc .irbrc_history lib patches.list share
感想
Linuxを今まで触ってこなかったので、ちょっとしたことでも解決に時間かかりますね。