Help us understand the problem. What is going on with this article?

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の拡張パッケージ 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした