【Railsチュートリアル】Railsプロジェクトに身に覚えのないherokuディレクトリがあったときの対処法


はじめに

Railsチュートリアルをcloud9環境で進めているとハマったので共有。

問題

Railsチュートリアルを久々に再開して色々やってると、作業プロジェクト内にこんなディレクトリが作られていた。
./sample_app/heroku
中身はbinやlibがありどうやらherokuコマンドの実体みたい。
ただし、herokuコマンドの実体は/usr/localに配置されているのでここに置かれる意味は不明。
何よりこんなものを作った覚えはない。

結論

ゴミディレクトリのため削除してください。

原因

./sample_appで以下コマンドを実行したため。

source <(curl -sL https://cdn.learnenough.com/heroku_install)

Railsチュートリアルを再開した時、herokuがまったく動かずRailsチュートリアルに記載されているこのコマンドを実行したらちゃんと動いたので放置してたが。これが原因。

https://cdn.learnenough.com/heroku_install
ここにアクセスして実際にダウンロードされるファイルの内容はこんな感じ。
1. 圧縮状態のソースファイルをカレントディレクトリにダウンロード
2. 解凍してアプリを展開
3. アプリを/usr/localに移動させる
4. /usr/localに移動させたアプリにPATHを通す
→ herokuコマンドが実行可能となる

heroku_installファイルの中身
curl -OL https://cli-assets.heroku.com/heroku-linux-x64.tar.gz
tar zxf heroku-linux-x64.tar.gz && rm -f heroku-linux-x64.tar.gz
sudo mv heroku /usr/local
echo 'PATH=/usr/local/heroku/bin:$PATH' >> $HOME/.profile
source $HOME/.profile > /dev/null

2回目以降に実行すると、./sample_app/herokuから/usr/local/herokuへの移動が失敗してプロジェクト内に残り続けたみたい。

エラー
mv: cannot move ‘heroku’ to ‘/usr/local/heroku’: Directory not empty

ただ、herokuコマンドへのPATHは通ったので見落とした模様。

対策

ターミナル起動時にPATHを通しておく。

ターミナル
$ vim ~/.bashrc
PATH=/usr/local/heroku/bin:$PATH

※ 初回インストールのときに$HOME/.profileにherokuのPATHを通す設定を追記しているのでわざわざ設定する必要はないと思われるが、、、
「.profile」は「.bash_login」の補欠らしい。
つまり、clound9だと「.bash_login」があるため設定が読み込まれない。
参考:https://wa3.i-3-i.info/word13652.html

メモ

コマンドの結果はちゃんと見ておこう。
「3.4.2 タイトルを追加する」を再開しようとした時に発生。