Ruby on Rails チュートリアルを終えて実際の Rails を使ったプロジェクトに加わるための手順を大きく 5 つの手順に分けてみました。
手順 1.GitHub からプロジェクトを clone する
手順 2.rvm から rbenv に移行するー rvm の削除
手順 3.rvm から rbenv に移行するー rbenv をインストールする
手順 4.Gem のインストールをする
手順 5.データベースとして PostgreSQL を使用する
以上の手順で加わる Rails プロジェクトは以下の場合を想定しています。
- Mac を使用している(rbenv のインストールに Homebrew を使うため)。
- GitHub にそのプロジェクトのリポジトリがすでに存在している。
- Ruby のバージョンマネージャーに rbenv を使っている。
- データベースに PostgreSQL を使用する。
手順 1. GitHub からプロジェクトを clone する
まずプロジェクトを自分のローカルリポジトリにコピー(clone)するところから始めます。
リポジトリを作成するディレクトリに移動します。
$ cd <リポジトリを作成するディレクトリ>
GitHub からプロジェクトをクローンします。
$ git clone <複製したいリポジトリのURL> <作成するディレクトリ>
複製したいリポジトリの URL の形は以下のようになっていることが多いです。
https://github.com/GitHubのアカウント名/プロジェクト名.git
※複製したいリポジトリの URL は GitHub のプロジェクトのページに入り、 以下の赤枠の URL が記載してある箇所からコピーすることもできます。
これで手順 1 は終了です。
プロジェクトがローカルに反映されているかを確認しましょう。
手順 2. rvm から rbenv に移行するー rvm の削除
プロジェクトで Ruby のバージョンマネージャーに rbenv を使う場合は
Ruby on Rails チュートリアルで使っていた rvm から rbenv に移行する必要があります。
まずは Rails チュートリアルで使っていた rvm を削除します。
$ rvm seppuku
面白いコマンドですね。このコマンドを入力すると
Are you SURE you wish for rvm to implode?
と聞かれますが yes を選びます。
まだファイル(.rvmrc 等)が残っている可能性がありますので自分のホームディレクトリ等で確認しましょう。
確認のためのコマンド
$ ls -la
ある場合は以下のようにコマンドでそれらを削除します。
$ rm -rf .rvm
また rvm のために通していたパスを削除します。
これは rvm をインストールした際に設定されるようで人によって記載箇所が異なると思います。.bash_profile、.bashrc、.bash_login、.profile、.zshrc 等に記載されているはずです。
(例).bash_profile の場合は以下の一文を削除します(他のファイルでも同様の記述かもしれません)。
[[ -s '$HOME/.rvm/scripts/rvm' ]] && source '$HOME/.rvm/scripts/rvm' # Load RVM into a shell session *as a function*
これで rvm の削除は完了です。
手順 3. rvm から rbenv に移行するー rbenv をインストールする
rbenv のインストール前に Mac であれば Homebrew の環境をキレイにします。必要でなければ次のステップ(rbenv のインストール)へ進んでください。
$ brew update
インストール済みのものをアップグレードします。
$ brew upgrade
次に rbenv をインストールします。
以下のコマンドでインストールします。
$ brew install rbenv-default-gems rbenv-gem-rehash
依存関係によって rbenv、ruby-buld、rbenv-default-gems、rbenv-gem-rehash がインストールされます。
次に rbenv を使い始める準備をします。まずは rbenv を初期化します。
$ eval "$(rbenv init -)"
ターミナルでタブやウィンドウを開く度に必ず初期化しなくてはいけません。 この手間を省くために bash_profile あるいは.bashrc に eval "$(rbenv init -)"を書く必要あります。そこで以下の一文を打ちます。
echo 'eval "$(rbenv init -)"' >> ~/.bash\_profile
次に必要な Ruby バージョンをインストールします。
まずインストールできる Ruby のリストをみます。
$ rbenv install -l
多くのバージョンが出てくるのでそのプロジェクトに合った(今回は例としてバージョン 2.2.1)Ruby のバージョンをインストールします。
インストールのコマンドは以下のようになります。
$ rbenv install インストールしたいバージョン
例
$ rbenv install 2.2.1
実際にインストールできているかを確認してみましょう。
$ rbenv versions
うまくインストールされていれば以下のようになります。
system (set by /usr/local/var/rbenv/version) 2.2.1
ここでデフォルトのバージョンを指定しておきます。
この global(デフォルト)設定は local 設定が無かった場合に反映されます。
$ rbenv global 2.2.1
次に以下のコマンドを入力しましょう。
$ rbenv rehash
このリハッシュも Ruby 環境を切り替える度に実行する必要がありますが、先程インストールした rbenv-gem-rehash のお陰で今後その必要はなくなります。
local の設定はフォルダごとに利用する Ruby バージョンを設定します。これによってプロジェクトごとに使用する Ruby のバーションを切り替えることができます。
* 新しいプロジェクトに入る際は既に local の Ruby のバージョンが指定してあるはずだと思います。clone したプロジェクトのルートディレクトリの.ruby-version というファイルを確認して、中身を見てみましょう。
*.ruby-version について
rbenv では Ruby はローカルにインストールされるわけではなく、rbenv install でインストールされた rbenv の中にあります($ which ruby で確認してみて下さい)。プロジェクトのルートディレクトリにあるこの.ruby-version はその読み込み先が記載されています(2.2.1 と書かれていれば rbenv の中の Ruby のバージョン 2.2.1 を使用する)。
次に手順4への準備として bundle install を実行するためには rbenv の中に bundler をインストールする必要があります。
$ rbenv exec gem install bundler
rbenv の中にある gem を確認して bundler が存在することをチェックしておきます。
$ rbenv exec gem list
以下のように表示されるリストの中に bundler があるか確認しましょう。
*** LOCAL GEMS ***
bigdecimal (1.2.6) bundler (1.9.2) : :
以上で rvm から rbenv に移行することができました。
手順 4. Gem のインストールをする
*この記事はすでに Gemfile が存在していることを想定しています。
bundle install をします。このコマンドは Gemfile に記載の Gem をインストールすることを意味します。--path vendor/bundle をつけることによってグローバル環境を汚さずに Gem をインストールすることができます(後に管理しやすくなる利点があります)。
以下のコマンドを実行します。
$ bundle install --path vendor/bundle
*ここで
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
: : checking for pg_config... no :
とエラーが出た方は手順 5.データベースとして PostgreSQL を使用するへ進んでください。
エラーがでなかった方はサーバー起動します。
$ bundle exec rails s
ブラウザで localhost:3000 にアクセスしてうまく画面が表示されるかを確認して下さい。
以上で Gem のインストールは終了となります。
手順 5. データベースとして PostgreSQL を使用する
PostgreSQL をインストールします。
$ brew install postgresql
サーバを起動します。
$ pg\_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
PostgreSQL に接続します。
gem をインストールします。
$ bundle install --path vendor/bundle
config/database.yml を確認します。
このような内容になっていた場合は
development: adapter: postgresql encoding: utf8 database: project 名_development pool: 5 username:project 名 password:
test: &TEST adapter: postgresql encoding: utf8 database: project 名_test pool: 5 username:project 名 password:
production: adapter: postgresql encoding: utf8 database: project 名_production pool: 5 username:project 名 password:
以下のようにデータベースを作成します。
$ createuser ユーザ名
ユーザ名は config/database.yml の development:の箇所の username を入れます。上の例の場合は
$ createuser project名
となります。
$ createdb 'database名'
この database 名は config/database.yml の development:の箇所の database を入れます。上の例の場合は
$ createdb 'project名\_development'
となります。
ここで
$ createdb 'project名\_test'
も実行しておくと後々便利です。
サーバーを起動して
$ bundle exec rails s
localhost:3000 にアクセスしてエラーが出ないかを確認してみます。
エラーがでなかった場合設定はほぼ完成です。
ほほというのは今の状態ですと rails s でサーバーを起動させるたびに PostgreSQL のサーバーを起動させなければエラーがでてしまいます。
そこで PostgreSQL の自動起動設定をします。
$ psql --version
でバージョンを確認します。
ディレクトリを作成します。
$ mkdir -p ~/Library/LaunchAgents
以下のコマンドを実行すると PostgreSQL の自動起動設定は完了です。
$ cp /usr/local/Cellar/postgresql/確認したバージョン/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
以上でデータベースとして PostgreSQL を使用する場合の設定は終了となります。