はじめに
Ruby及びRails初心者がRails 5を使ってみたときのメモです.
結論
0. 各種ライブラリのインストール
以下を予めインストールしておきます.
- OpenSSL
- readline (BSDの場合はGNUのものではないものがOSのbaseに含まれていることが多いためインストール不要です.)
- iconv
1. rbenvのインストール
% git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
% git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
2. rbenvの設定 (bashの場合)
% [ ! -f ~/.bash_profile ] && echo '[ -f ~/.bashrc ] && . ~/.bashrc' >> ~/.bash_profile
% export PATH="$HOME/.rbenv/bin:$PATH" >> ~/.bash_profile
% eval "$(rbenv init -)" >> ~/.bash_profile
% source ~/.bash_profile
% rbenv -v
rbenv 1.1.0-2-g4f8925a
3. インストール可能なRubyのバージョンの確認
% rbenv install --list
(snip)
2.3.2
2.3.3
2.4.0-dev
2.4.0-preview1
(snip)
4. Rubyのインストール
% rbenv install 2.3.3
5. インストールされたRubyの有効化
% rbenv rehash
7. 現在のRubyのバージョンの確認
% rbenv versions
* system (set by /home/user/.rbenv/version)
2.3.3
8. 利用するRubyの変更
% rbenv global 2.3.3
% rbenv versions
system
* 2.3.3 (set by /home/user/.rbenv/version)
9. bundlerのインストール
% gem install bundler
% rbenv rehash
10. Railsのインストール
git cloneでRailsのアプリケーションのコードを取り出して,必要なツールをインストールする場合には本作業は不要です.
% gem install rails
% rbenv rehash
11. Railsアプリケーションの作成
% rails new hogehoge --skip-bundle
--skip-bundleによってrbenvの当該Rubyのインストール先にbundlerによって各種ツールがインストールされるのを防止しています.
12. Railsアプリケーションのための各種ツールのインストール
% cd hogehoge
% bundle install --path vendor/bundle --without production
13. Railsアプリケーションの動作確認
以下のコマンドを入力して開発版の簡易Webサーバを起動した後,Webブラウザでhttp://localhost:3000
にアクセスして確認します.
% rails server -b 0
なお,-b 0は-b 0.0.0.0や::0を省略して書いただけです.
14. Railsアプリケーションの修正
以下辺りを参考に練習します.
OSのパッケージ管理システムではなくrbenvを利用する理由
- OSのパッケージ管理システムは古いRubyしかインストールできない (e.g. Cent OS 7のyum)
- gemでRailsをインストールしようとするとrubyが古過ぎると言われ,インストールできない
rbenvとは?
- 異なるバージョンのRubyとそれに付随するツールを切り替えて使うためのもの.
- $RBENV_ROOT/以下に各種Rubyとツールをインストールする.
- $RBENV_ROOT/shims/以下にパスを通す.
- $RBENV_ROOT/shims/以下にラッパープログラムを配置し,各種バージョンを切り替える.
- $HOME/.rbenv以下を$RBENV_ROOTとすることが多い様だ. (つまり,ユーザ毎にRubyをインストールする)
- 複数人で協調して1つのサーバで作業する場合は,/usr/local/rbenvを$RBENV_ROOTが良いかもしれない.
gemとは?
- Rubyのパッケージ管理システム(RubyGems)のコマンド(インストールされたパッケージ自体を指すこともある).
- 最近のRuby (1.9.x以降か?)ではgemはRuby本体に取り込まれたため,gem自体を別途インストールする必要はない.
bundlerとは?
- RubyやRailsで作成するプロジェクトのためのパッケージ管理システム.
- プロジェクトが依存しているパッケージをインストールしてくれる.
- プロジェクトのトップディレクトリにGemfileというテキストファイルに依存しているパッケージとバージョンを記述.
Railsとは?
- RubyのWAF (Web Application Framework: Webアプリケーションを作成するためのフレームワーク).
- Webの最先端の技術を積極的に取り入れている (様に見える).
- QUICやHTTP2.0,SCTPといった低いレイヤの最新技術はあまり気にしていない (様に見える).
- メジャーバージョンが上がると移行が結構しんどそう (に見える).