rails console実施で Could not find thor-0.19.4 in any of the sourcesというエラーが発生しました!
今日、会社に行って、Macのマシーンでターミナルを起動して、ウェッブアプリケーションのフォルダーにCDコマンドを使って移動し、 rails c のコマンドを入力し実行しまた。すると thor-0.19.4 が見つからないというエラーが発生したので、このエラーをどうやて解決したか書いていきますね。
目 次
スポンサードリンク.(Sponsored Link)
gem install bundler で Permission denied @ rb_sysopen …
それで、エラーメッセージの中に、「’gem install bundler’コマンドを実行して、Bundlerの最新バージョンにアップグレードしてください。」というメッセージが表示されたのです。
そして、さらに、Permission denied @ rb_sysopen – …というメッセージが表示されています。
原因はsudoにあった!
まず最初に私のパソコンの環境ですがMac Sierraを使用。
エラーの内容は以下のようものです。
▼ターミナルのコピー
これは、rails console (rails c)で、railsのコンソールを起動しようとした時に、
Could not find thor-0.19.4 in any of the sources
というエラーメッセージが出たのです。
このようなエラーについて、何か参考になる情報がインターネットに出ていないかと思い検索してみました。
すると「Permission denied issues on updating gems」の英文の記事がそれです。
この情報からわかるのは、本当ならば、次のディレクトリ「/Users/(ユーザ名)/.rbenv/versions」配下にあるものは全てユーザーアカウントの権限になるべきなのですが、そのディレクトリの中のある幾つかのファイルに書き込む権限がないというのが問題でした。
その原因は、”gem install”のコマンドを実行したときに、 “sudo gem install”というふうに “sudo”をつけてはいけない時に、”sudo” を付けて このコマンドを実行してしまったからでした。
この解決策は、〈sudo chown -R (ユーザ名):staff /Users/(ユーザ名)/.rbenv〉を実行して、上に出たディレクトリの所有者をユーザー権限に変える方法です。
そして、rbenv-managed Rubyのバージョンを使用している場合には絶対にsudo gem installを使ってはいけません。
つまり、〈/Users/ユーザ名/.rbenv/version〉のフォルダから下の階層に対して、所有者をユーザに変更すると解決できる事になります。
Sponsored Link
Chown コマンド
構文
1 |
chown [-cfhvR] <[所有者]or[所有者:グループ]> <ファイルorディレクトリ> |
chownコマンドの実行
そして、このコマンドを実行しました。
うまく行ったようです。
最後に、ターミナルを開き、”cd “コマンドの後に、上のディレクトリー〈/Users/ユーザ名/.rbenv/version〉を入力して移動し、lsコマンドでアクセス権を調べてみました。
ls -ldは、隠しファイルを参照することはできませんので、ls -laを使い、隠しファイルの権限も確認したほうが良いです。
すると、versionsというフォルダー名のところをみると権限が「staff」に変更されているので大丈夫ですね。
試しにrails c を実行してみましたが、エラーが再び出て(▼)
Could not find thor-0.19.4 in any of the sources
Run ‘bundle install’ to install missing gems.
と書いてあります。
これは、「thor-0.19.4がソースのどこにも見つかりませんでした。
‘bundle install’を実行して、不足しているgemsをインストールしてください。」という意味になります。(下の図が、その時のターミナルです)
そこで、もう一度 “bundle install” を実行しました。
すると、下の図の下から三行目で、”rails c” をもう一度実行してみて
その結果、一番下の行で、コンソールモードになりました。
ということで問題が解決出来ました。
ふー、疲れますね・・・でも、気分は爽快です!
スポンサード・リンク (Sponsored Link)....