4
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

【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 タイトルを追加する」を再開しようとした時に発生。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
4
Help us understand the problem. What are the problem?