Rubyド素人がherokuをGetting Startedするよ(Mac)

元旦から暇人なのでherokuをはじめてみました。
Rubyもサーバーサイドも一切いじったことない私が、Getting startedを完走するまでにつまづいたところの備忘録です。
Let's get started!
devcenter.heroku.com

環境とか

Introduction

Heroku accountを取得する。
Heroku | Sign up
送られてくるメールにあるURLからアクティベートする。
RubyとBundlerのインストールが指示されているが、一旦これをすっ飛ばす。

Set up

Download the Heroku CLI for...でMac OS Xを選択して、ダウンロードしたapkを実行。
ターミナルを起動して、

$ heroku login
Enter your Heroku credentials.
Email: 登録メールアドレス
Password: 登録パスワード
...

ここまでいってから、Rubyを入れていきます。こちらを参考に。
[Ruby入門] 01.導入(Macに最新版のRubyを入れる) - Qiita

$ brew install rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

次にPATHを通します。こちらを参考に。
MacでPATHを通す - Qiita

$ vi ~/.bash_profile

Vimが開きます。Insertモードにして

i

PATHを入力

export PATH="$HOME/.rbenv/bin:$PATH"
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

Insertモードから出て、上書きして終了*1

esc
:w
:q

ターミナルに戻ったら、変更を反映させます。反映されたかどうかはechoで確認。

source ~/.bash_profile
echo $PATH

まず、herokuのRubyバージョンを調べる*2

heroku run "ruby -v"

表示されたバージョンのRubyをインストールする。執筆時点では2.3.5だったので、この表記で進めます。
インストールが成功したら、デフォルトではSystemバージョンになっているので変更しておく。

$ rbenv install 2.3.5
$ rbenv global 2.3.5

次にBundlerとPostgreSQLをインストール。
bundle installのpgインストールでエラー | EasyRamble

$ gem install bundler
$ brew install postgresql

Declare app dependencies

実際には、上の手順を踏まなかったために、ここでbundle installが失敗した。
食らったエラーと原因の一覧。

command not found

Bundlerがインストールされていない。

Your Ruby version is 2.5.0, but your Gemfile specified 2.3.5

RubyとGemfileのバージョンが違っている。

An error occurred while installing pg (0.20.0), and Bundler cannot continue.
Make sure that `gem install pg -v '0.20.0'` succeeds before bundling.

PostgreSQLがインストールされていない。

Run the app locally

ここでPostgreSQLが起動していないと

could not connect to server: No such file or directory

などのエラーで失敗する。

psqlでエラー発生時の対処 - のしメモ アプリ開発ブログ

$ cd /usr/local/Cellar/postgresql
$ curl -o fixBrewLionPostgresql.sh http://nextmarvel.net/blog/downloads/fixBrewLionPostgres.sh
$ chmod 777 fixBrewLionPostgresql.sh
$ ./fixBrewLionPostgresql.sh
$ pg_ctl -D /usr/local/var/postgres start

カレントディレクトリが移動してしまっているので、戻すのを忘れずに。

$ cd ~/ruby-getting-started

Provision add-ons

Please verify your account to install this add-on plan (please enter a credit card)

アカウントにクレジットカード情報を入力。Add-onが無料のものでも必要。

Use database

レコードが1件入っているていになっているが、テーブルは空なのでwidgetsにアクセスしたときにブラウザ側から自分で追加する。

$ heroku pg:psql

に入って出てこれなくなる。終了コマンドは¥q。helpを叩くと教えてくれる。

おわりに

無事完走できてよかった!

*1:これが噂の100万人を飲み込んだVim迷宮か…。Stack Overflow: 100万人の開発者を手助けするVim終了方法 | プログラミング | POSTD

*2:執筆時点のIntroductionにはRuby 2.3.4を前提と書いてあるが、gemfileには2.3.5が指定されている。トラップ…?