先日ubuntu16.04でRails環境を整える機会があったので参考までに。
これまでで何回も環境設定をしましたが初めてrails環境を整えたときは、どれがどれだか何がどんなことをしてくれるのかよくわからずふぎゃーとなったのでその辺も書いて当時の自分のような人に役立ったらうれしいです。個人的にはbundlerあたりが一番理解に苦しんだのでそこも丁寧にやっていきたいと思います。
環境
ubuntu16.04 (Docker上)
やること
- rbenvをinstall
- nodejsをinstall
- bundleでgem管理
- railsをinstall
の4ステップです。
rbenvをインストール
rbenvの用途: rbenvをインストールすることでrubyのバージョンを管理できる
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
// パフォーマンスをよくするためにoptionとして実行したらいいらしい(うまくいかなくても次に進んでよし)
$ cd ~/.rbenv && src/configure && make -C src
// パスを通していく
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
// ここで一度環境変数を読み込ませる
$ exec $SHELL
// rbenvをinitする
$ ~/.rbenv/bin/rbenv init
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ exec $SHELL
// これを実行することで各種rubyのバージョンを取得することができるようになる
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
ここまででrbenvは無事入ったはずです。試してみましょう。
// rbenvでインストールできるrubyのバージョンを一覧表示する
$ rbenv install -l
1.8.5-p52
1.8.5-p113
1.8.5-p114
1.8.5-p115
1.8.5-p231
(以下略)
とずらずらとインストールできるバージョンが表示されてきたらOK。
今回は2.4.3をインストールしてみます。
ただインストールするために必要なライブラリが整ってない可能性があるのでそれらをまずインストールしていきます。
$ sudo apt update
$ sudo apt install -y wget bzip2 build-essential libffi-dev libsqlite3-dev tzdata libssl-dev libreadline-dev zlib1g-dev
$ rbenv install 2.4.3
無事入ったか確認してみます。
// rbenv内で管理できているrubyのバージョンを一覧表示
// 2.4.3の数字がいたらうまくインストールできてる
$ rbenv versions
2.4.3
// rails用のディレクトリを作る
$ mkdir rails && cd rails
// railsディレクトリ内でruby2.4.3環境を設定する
$ rbenv local 2.4.3
// 以下のように表示されたらOK
$ ruby -v
ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-linux]
ここまででrbenvを用いてrubyのバージョンを管理できるようになりました。
nodejsのインストール
nodejsの用途 : Railsはnodejsが必要なのでインストールしていきます。
$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
$ sudo apt-get install nodejs
$ sudo apt-get install npm
以上でOKです。
bundlerでgemを環境ごとに管理
bundlerの用途: rubyの場合主にgemというもので各種便利なパッケージをinstallしたりuninstallしたりします。bundlerとはさらにそのgemを管理するものです。
最初はそんなよく分からんもん使いたくない、環境整えるのが面倒になる、と感じますが使ったらすごく便利です。
スプラトゥーンに例えたらもう少し覚えやすいかもしれないです。
Rails | スプラトゥーン |
---|---|
プロジェクト | ギア |
パッケージ | ギアパワー |
gem | スーパーサザエ |
bundler | スパイキー |
とでも覚えておいてください。bundlerすごい。
// rbenv環境内でbundlerをインストールするようにrbenv execであえて明示する
$ rbenv exec gem install bundler
$ bundle init
最後のコマンドを叩くといまいるディレクトリのなかでGemfileと言うファイルが作られます。このGemfileと言うものを使って、gemを管理していきます。
そのファイルのなかでは #gem rails
と書かれた一行があるはずなので、
#gem rails
-> gem rails
と書き直します。
// Gemfile内で管理されているgemをインストールしていく
$ bundle install --path=vendor/bundle
ここまでできたら後は適当なRailsプロジェクトを作成するだけです。
$ bundle exec rails new test_app && cd test_app
// railsサーバーをたてる
$ bundle exec rails s
ブラウザでhttps://localhost:3000
を検索してみて
と出たらうまくいってます。お疲れさまでした!