Ruby on Railsの環境構築

概要

もうすでにいろいろな方々がやっているのですでにいろんなベストプラクティスがあると思います。なのでその中でもいちばんわかりやすくてメンテナンスしやすいものを目指して環境構築したいと思います。
Ruby on Railsはツールがいろいろあって便利なんですが、ツールの使い方もこれまた知識というか経験値というかそういったものに依存するので、中身を理解しながら学習をすすめて行きましょう。ここではAWS Linux2 (EC2)での環境構築手順を基本路線として説明しています。

ツール類のインストール

Rudyを使う際に必要なツールを諸々インストールしておきます。(その他の機能ですでにインストールされいるものはしなくても大丈夫)

# yum -y update
# yum -y install gcc-c++ glibc-headers openssl-devel readline libyaml-devel readline-devel zlib zlib-devel libffi-devel libxml2 libxslt libxml2-devel libxslt-devel sqlite-devel

# yum install sqlite-devel

主にそこそこ必要なものになりますが全部入れておいてよいかと思います。

rbenvのインストール

Rootでシステム全体として操作するかユーザー単位でrbenvを操作するかでいろいろ悩みどころではあるのですが、私的にはプロダクト環境ではroot(システム全体で)、開発環境や実験環境ではユーザー単位でやるっていうのがベスト・プラクティスなのなかと思います。が、このご時世なのでプロダクト環境でもどんどんバージョンを変えてゆくということもありえるのかなと。

rootでやる場合

gitでcloneしてくるのであらかじめgitをインストールしておくこと。

rbenv Document:

rootでやる場合。

# git clone https://github.com/rbenv/rbenv /opt/rbenv

rbenvの環境設定のシェルを作成します。

vi /etc/profile.d/rbenv.sh

以下の内容を設定します。

# /etc/profile.d/rbenv.sh
export RBENV_ROOT="/opt/rbenv"
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init -)"

設定を反映します。

source /etc/profile.d/rbenv.sh

ruby-buildをインストール

次に、ruby-buildをインストールします。makeとかmake installとかconfigureとか面倒くさいのでこれを入れておきます。

git clone https://github.com/rbenv/ruby-build.git /opt/rbenv/plugins/ruby-build

ここまででrootで利用できるようになっているのでOK。
wheelグループに属しているユーザがrbenvコマンドを使用できるようにしたい人は別途設定が必要です。

Rubyのインストール

インストールできるバージョンの確認。やたらと長いリストが出てくる。

# rbenv install -l
....
2.5.1
....

現在の安定版は 2.5.1(2018-08-15現在)なので2.5.1をインスールします。rbenv楽だわー。やたらと時間がかかるうえにプログレスバー的なものが出ないので結構心配。

# rbenv install 2.5.1
Downloading ruby-2.5.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.bz2
Installing ruby-2.5.1...
Installed ruby-2.5.1 to /opt/rbenv/versions/2.5.1

バージョン確認

# ruby -v
rbenv: ruby: command not found
The `ruby' command exists in these Ruby versions:
2.5.1

これでrubyが動くようになりました。ですが、rbenvとrubyが紐付いていないのでruby全システムをrbenvで使えるようにしておきます。

# rbenv rehash
# rbenv global 2.5.1

※rehashいならないっぽい。rbenvでrehashがいらなくなった
これでrbenvとrubyが紐付いたので、ruby -vを実行するとrbenvの方でバージョンを表示できるようになります。
ここまででrubyのインストールは完了。
簡単な動作テストは、

# vi rubytest.rb

とかやって.rb拡張子の適当なファイルを作成します。

#!/opt/rbenv/shims/ruby

puts "Hello Ruby2.5.1"

で保存して、実行してやります。(実行パーミッション要らないのかな。あってもなくても実行できた。)

# ruby rubytest.rb
Hello Ruby2.5.1

ここまでの感想は「楽だわー」の一言に尽きます。

ユーザー単位でやる場合

ユーザーごとにRubyのバージョン管理する場合は同じくrbenvのインストール。このときはもちろん各ユーザーになっている必要があります。

$ git clone https://github.com/rbenv/rbenv ~/.rbenv

なんなく終了。
環境変数の設定をしておく。
ユーザー単体でやるときはrbenv.shの設定はしないでユーザーごとの.bashrcで設定する。

vi ~/.bashrc

で以下記述

export PATH=$HOME/.rbenv/bin:$PATH
eval "$(rbenv init -)"

反映

$ source ~/.bashrc

バージョン確認

$ rbenv --version
rbenv 1.1.1-39-g59785f6

これでOK。

ruby-buildをインストール

プラグインのruby-buildをインストールします。

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

Rubyのインストール

インストールできるバージョンの確認。

$ rbenv install -l

ここでも2.5.1をインストールしてみます。

$ rbenv install 2.5.1
Downloading ruby-2.5.1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.bz2
Installing ruby-2.5.1...
Installed ruby-2.5.1 to /home/ruby-nowhite/.rbenv/~/.rbenv/versions/2.5.

これで入った。
有効化します。

rbenv local 2.5.1

バージョン確認

$ ruby -v
2.5.1

おしまい。

Rubyを動かす


適当な実行ファイルを作成します。

$ touch ruby.rb
#!~/.rbenv/shims/ruby
puts "foobar"

で、実行。

$ ruby ruby.rb
foobar

おわり。


Rubyのバージョンを変更する場合

通常というか常識的にというかrubyのバージョン変更は各ユーザーごとで行います。(というか、各ユーザーごとでできるっていうのがとても親切)
切り替えたいバージョンは勿論事前にインストールしておく。

$ rbenv install 2.4.0

切り替える

$ cd ~
$ rbenv local 2.4.0 *このディレクトリ以下のrubyバージョンが2.4.0になります

おお、すげー楽。

$ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]

on Rialsの概要と準備

Webアプリをつくる場合にはon Railsがないと話にならないというのがあるのでrubyとほぼセットになる感じです。というかRuby単体で使っている人ってどれぐらいいるんでしょうか。

gemの確認

$ gem -v
2.7.6

これが実行できればgem自体は正常に動いています。ですがon Railsでのgemはできればユーザーごとに個別で操作したいというのがみんなの願いです。先のRubyのバージョンと同様にgemもユーザーごとに個別で動くようにしてあげたほうがのちのちよいです。
例でいうと以下のような感じになります。

$ cd ~
$ rbenv exec gem install

とはいえ、巨大なプロジェクトの複数人で管理している開発サーバーとか以外ではそのままrootのgemを使っても問題ないと思われます。
とりあえずはインストールできるon Railsを検索してみます。

gem search -r rails

やたらと長いリストが出てきますが、これでインストールできる準備は整っています。
Railsのリリース情報を見てみると2018-08-16現在での最新は、Rails5.0.7ってことになっているのでこれを入れた方がよいかと。
Rails 5.0.7 and 5.1.6 have been released

Railsのインストール

$ gem update --system
$ gem install rdoc
$ gem install rails
$ gem install sqlite3-ruby
$ gem install uglifier
$ gem install bundler

バージョンを指定しない場合は最新のRailsがインストールされます。

$ rails -v
Rails 5.2.1

これでインストール完了


Amazon LinuxにRuby on Rails環境構築(rbenv + ruby-build + Ruby 2.2.1 + Rails 4.2.1インストール)
https://github.com/rbenv/rbenv
gemを間違えてグローバルにインストールしてしまった場合
rubyonrails.org
(デプロイ編①)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで
Ruby On RailsをAmazonLinux2にインストール(2018.3)
rbenv + ruby-build はどうやって動いているのか

rbenv: no such command `install’

system rbenvでsudo rbenv installするとrbenvがない・installがないと言われる

Last update: 2018.08.28 (火)