コジマです。
本日2記事目です。
Railsチュートリアルやっていて、3章のminitestとguradを実行しようとしたんですよ。
そしたらどっちも実行できなくて、なんじゃこりゃって…。
私はVagrant上に立てたCentOSにRails環境を作成して
ファイルはCyberduckを使用して編集しているんですね。
タイトルでオチバレしてますが、Gemfileのアクセス権に書き込み権限がなかったんですわ。
だせぇ。。。
bundle installした結果にguardもminitestも入ってなくて
まさかと思ってサーバーから直接viでGemfile見てみたら何一つ書き変わってなくてですね。
デフォルトでGemfileの権限って664で一般ユーザーには読み込み権限しかないんですね。
とりあえずchmod 666でGemfileとGemfile.lockに書き込み権限を与えたら解決しました。
sudo chmod 666 Gemfile sudo chmod 666 Gemfile.lock bundle install --without production
$ bundle show | grep minitest * guard-minitest (2.4.4) * minitest (5.11.3) * minitest-reporters (1.1.14) $ bundle show | grep guard * guard (2.13.0) * guard-compat (1.2.1) * guard-minitest (2.4.4)
$ bundle exec guard init 09:06:26 - INFO - Writing new Guardfile to /home/vagrant/rails_tutorial/sample_app/Guardfile 09:06:26 - INFO - minitest guard added to Guardfile, feel free to edit it
ちゃんとできましたよ…!
しかしながら一般ユーザーにGemfileの書き込み権限を与えることが適切な処置かどうかは分かってないので、
チームで開発している人はリーダーに確認取る必要ありそうですね。
アクセス権のことを考えないで作業をしていると
思わぬ沼にハマってしまうんですねぇ。。。
レガシーな技術で開発する時はこういうのは自然と意識するのですが、
フレームワークは色々できるものと思ってしまっていたようですね。
反省です。
今後は似たような感じでハマった人に
「アクセス権大丈夫????????????????」
って言ってあげられるようにならなきゃですね。
以上、コジマでした。