既存のリポジトリをgit cloneして、環境構築中に下記コマンドをしたところ「Permission denied」というエラーが発生しました。
./start-database.sh
エラーの原因
このエラーは、スクリプトファイルに実行権限が付与されていないことが原因です。
Gitは通常、ファイルの実行権限(executable permission)を保持してコミットされないため、クローンした直後のスクリプトファイルには実行権限がありません。
解決方法
今回は下記のコマンドを実行することで、無事にデータベースの環境構築を行うことができました。
chmod +x ./start-database.sh //ファイルに実行権限を追加する
./start-database.sh
予防策
今回はすでに作成されているリポジトリをクローンして環境構築をしようとしたため、実行時に権限を追加する必要がありました。
Gitにスクリプトファイルをコミットする際に、実行権限を明示的に付与することができます。
2種類の対応方法があるので、どちらかを実行します。
git update-index --chmod=+x ./start-database.sh
git add --chmod +x ./start-database.sh
まとめ
「Permission denied」というエラーは実行権限の問題です。
chmod +xコマンドを使用することで、解決することができます。
ただ、クローンするたびに手元で実行権限を追加するのも面倒なのでリポジトリ内で予防しておくと開発をスムーズに進められます。