Ruby
Rails
centos7

CentOS7にRubyとRuby on Rails環境構築

More than 1 year has passed since last update.


はじめに

できるだけ環境を汚さないようにRuby on Rails環境を構築する手順をまとめました。

RubyとRuby on Railsのバージョン管理ができるだけやり易いように配慮しています。

実施した環境はCentOS 7.4です。Ubuntuなどでもほぼ同じ手順でできる思います。


事前準備

GitとRubyのビルドに必要なものをインストール

$ sudo yum update

$ sudo yum install -y git
$ sudo yum install -y bzip2 gcc openssl-devel readline-devel zlib-devel


1rbenvのインストール

ホームディレクトリにインストールし、さらに2ruby-buildも入れます。

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

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

~/.bashrc(または~/.bash_profile)に以下を追記します。


~/.bashrc

# rbenv

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

反映させ、確認します。

$ source ~/.bashrc

$ rbenv -v # バージョンが表示される。


Rubyのインストール

Rubyのインストール可能なバージョンを確認します。

$ rbenv install --list

任意のバージョンのRubyをインストールします。(今回は2.5.1を指定しました)

$ rbenv install 2.5.1 # 時間かかります

インストールしたバージョンのRubyをrbenvに設定し、確認します。

$ rbenv global 2.5.1 # ※インストールしたバージョンを指定

$ ruby -v # Rubyが実行できることを確認


Rails環境の作成(ディレクトリに隔離)

3bundlerをインストール

$ gem install bundler

Railsの利用可能なバージョンを確認します。

$ gem query -ra -n  "^rails$"

Railsの任意のバージョンの環境をディレクトリにまとめます。

(今回は5.2.0を指定しました)

$ mkdir rails_v5.2.0 # お好きな名前を

$ cd rails_v5.2.0
$ bundle init # カレントディレクトリにGemfileを作成
$ echo 'gem "rails", "5.2.0"' >> Gemfile # ※ 任意のバージョンを指定
$ bundle install --path vendor/bundle # ./vendor/bundleにRails関連のGemが入る


「bundle exec」省略設定

今のままだとrailsコマンドを実行するときに、bundle exec railsと入力しないといけないので、これを省略できるようにする設定をします。(参考: bundle execを省略してみる - Qiita)

便利なスクリプトをダウンロード

$ curl -L https://github.com/gma/bundler-exec/raw/master/bundler-exec.sh > ~/.bundler-exec.sh

~/.bundler-exec.shを編集します(下の方のリストにrailsを追記)


~/.bundler-exec.sh

<<< 省略 >>>

unicorn
unicorn_rails
wagon
rails <-これを追記
}"

define-bundler-aliases

unset -f define-bundler-aliases


~/.bashrc(または~/.bash_profile)に以下を追記します。


~/.bashrc

# "bundle exec" shortcut setting

[ -f ~/.bundler-exec.sh ] && source ~/.bundler-exec.sh

反映します。

$ source ~/.bashrc


Railsプロジェクトの作成

Railsのプロジェクトは、上記で作成したRailsディレクトリの中で作成します。

Gemはプロジェクトごとのディレクトリにインストールするようにします。

$ cd ~/rails_v5.2.0 # 上記で作成したRailsディレクトリに移動

$ rails new <プロジェクト名> --skip-bundle # プロジェクトの作成

--skip-bundle4bundle installを自動で行わないようにするオプションです。これをしないと、Ruby自体にGemがインストールされてしまいます。

今回はそうではなく、プロジェクトフォルダ内のvendor/bundle内に、プロジェクトで必要なGemをインストールしたいと思います。

$ cd <プロジェクトフォルダへのPath>

$ bundle install --path vendor/bundle # ./vendor/bundleにGemをインストール
$ echo '/vendor/bundle' >> .gitignore # Gitの管理対象から外す


MySQL(MariaDB)の設定

別記事にまとめています。

MariaDBのインストール/初期設定 [CentOS7] - Qiita


まとめ

本記事のやり方で、RubyとRailsのバージョンを簡単に管理することができます。また、できるだけ環境を汚したくない方にとっても良い方法だと思います。





  1. Rubyのバージョン管理ツール 



  2. Rubyのビルドスクリプト 



  3. Rubyの5Gemを束ねて管理することができるツール 



  4. bundlerがGemfileを元に一括でGemをインストールするコマンド 



  5. Rubyの拡張パッケージ