LoginSignup
0
0

More than 5 years have passed since last update.

CentOS 7.5にRuby on Railsチュートリアルの環境を構築する

Last updated at Posted at 2019-01-13

Ruby on Railsチュートリアルを読み進めるための開発環境を、Vagrant+VirtualhostのゲストOS上で構築する。

ゲストOSはCentOS 7.5。

$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

ruby 2.4のインストール

ruby 2.4をインストールするため、SCL(Software Collections)を導入する。

yumのリポジトリを管理するためにyum-utilsをインストールし、

$ sudo yum install -y yum-utils

SCLをインストールする。

$ sudo yum install -y centos-release-scl

そして、SCLのリポジトリを有効化する。

$ sudo yum-config-manager --enable rhel-server-rhscl-7-rpms

SCLを有効にしたら、ruby2.4をインストールする。

$ sudo yum install -y rh-ruby24 rh-ruby24-ruby-devel

SCLで管理するパッケージは、インストールしただけでは利用できない。
利用するには、sclコマンドから実行しなければならない。

$ scl enable rh-ruby24 'ruby --version'
ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-linux]

毎回このコマンドを使用するのは面倒なので、ログイン時にsclを有効になるようにbashrcを設定する。

$ cat ~/.bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions

source scl_source enable rh-ruby24

最後の行の

source scl_source enable rh-ruby24

これがsclを有効にする設定。こうするとログインすると

$ ruby --version
ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-linux]

sclコマンド無しで、rubyを利用できる。

パッケージの追加インストール

railsやgemのパッケージで必要になるライブラリをインストールする。

  • zlib-devel
  • sqlite-devel
$ sudo yum install -y zlib-devel sqlite-devel

Node.jsのインストール

railsで使用するExecJSはJavaScriptのランタイムが必要である。
ランタイムがない状態で実行すると

$ rails server
/home/vagrant/.gem/ruby/gems/execjs-2.7.0/lib/execjs/runtimes.rb:58:in `autodetect': Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
...

このようなエラーが発生して、rails serverが実行できない。
ここでは、サポートされているランタイムの中からNode.jsをインストールする。

パッケージのインストール

Node.jsに必要なパッケージをインストールする。

$ sudo yum install -y gcc-c++ make

yumリポジトリの追加

Node.js 10.15.0 LTSをyumでインストールするため、リポジトリを追加する。

curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -

Node.jsのインストール

yumを使ってNode.jsをインストールする。

sudo yum install -y nodejs

インストールできたら、バージョンを確認する。

$ node -v
v10.15.0
$ npm -v
6.4.1

ポートの設定

rails serverで使用するポートを開けて、ホスト上のブラウザで確認できるようにする。
ここではrails serverのデフォルトの3000を開ける。

Vagrantの設定

Vagrantfileでポートフォワーディングを有効にして

# Vagrantfile
config.vm.network "forwarded_port", guest: 3000, host: 3000

設定を適用する。

$ vagrant reload

CentOSの設定

firewall-cmdでpublicゾーンにポート3000/tcpを登録し

$ sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent

設定を適用する。

$ sudo firewall-cmd --reload

設定の確認

設定が終わったら、実際にrails serverを実行して確認する。

$ rails server
=> Booting Puma
=> Rails 5.1.6.1 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.0 (ruby 2.4.3-p205), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

ゲストOSでrails serverを実行して、ホストOSのブラウザから http://localhost:3000/ にアクセスし、railsのページが表示されることを確認する。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0