目次

概要

VirtualBox、Vagrantを使用して、RubyOnRailsの開発環境を構築していきます。


事前準備

RubyOnRailsの開発環境構築を構築するために、必要となるソフトウェアを紹介します。


OracleVM VirtualBox

VirtualBoxとは、自身のパソコン上に、仮想マシン(仮想環境)を構築するためのオープンソースソフトウェアです。
まだダウンロードしていない方は、こちらを参考にダウンロードしてください。


Vagrant

Vagrantとは、「仮想マシンを簡単に構築・操作できるようにするソフトウェア」です。
まだ、ダウンロードしていない方は、こちらを参考にダウンロードしてください。


私の使用している環境

  • Windows11
  • Virtual Box 3.1.34
  • Vagrant 2.2.19

Amazon Linux2のVagrant Boxを作成する

最終的にAWS EC2にデプロイすることを考え、AmazonLinux2の仮想環境を構築していきます。


まずは、Vagrantfileを作成するためのフォルダを作成します。
Vagrantfileとは、仮想環境を生成するために必要な情報が記載されたファイルです。

フォルダの作成場所は任意です。私は以下のパスにフォルダを作成しました。

C:\vBox

フォルダが作成できたら、スタートメニューからコマンドプロンプトを開いてください。



以下のコマンドでカレントディレクトリを変更します。

「cd 」以降のコマンドは適宜先ほど作成したフォルダのディレクトリに変更してください。

cd C:\vBox

以下のコマンドを実行して、Vagrantfileを作成してください。

vagrant init bento/amazonlinux-2

以下のように表示されればOKです。

A `Vagrantfile` has been placed in this directory. You are now
  ready to `vagrant up` your first virtual environment! Please read
  the comments in the Vagrantfile as well as documentation on
  `vagrantup.com` for more information on using Vagrant.

エクスプローラーで、「C:\vBox」のディレクトリを開いてください。
以下の画像のように、Vagrantfileが作成されているかと思います。



Vagrantfileを修正していきます。
Vagrantfileを開き、以下のようにVagrantfileを修正してください。

Vagrant.configure("2") do |config|

  config.vm.provider "virtualbox" do |vb|
      vb.name = "local"
      vb.memory = 2048
  end

  config.vm.box = "bento/amazonlinux-2"
  config.vm.network "private_network", ip: "192.168.33.11"
  config.vm.network "forwarded_port", guest: 3000, host: 3000
end

各行のの説明をしていきます。


以下の記載は、VagrantfileをVagrantのバージョン2であるという意味です。

Vagrant.configure("2") do|config|

以下の記述で、VirtualBox内の基本設定を変更しています。
具体的には、作成するVirtualBoxの名前を「local」に、メモリ容量を2048MBに変更しています。
※VirtualBoxの名前は任意で変更して大丈夫です。

    config.vm.provider "virtualbox" do |vb|
  vb.name = "local"
  vb.memory = 2048
end

以下の記述で、VirtualBoxを作成する時のBoxのイメージ名を指定しています。
Boxのイメージはこちらのサイトから検索可能です。
今回は、公式でも推奨されている、bentoを使用していきます。

For other users, we recommend the Bento boxes. The Bento boxes are open source and built for a number of providers including VMware, VirtualBox, and Parallels. There are a variety of operating systems and versions available.

引用:Boxes|Vagrant by HashiCorp
config.vm.box = "bento/amazonlinux-2"

以下の記述で、プライベートIPアドレスを設定しています。以下の範囲であれば変更して頂いてもOKです。

10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255

config.vm.network "private_network", ip: "192.168.33.11"

以下の記述で、ポートフォワーディングの設定を行っています。

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

先ほど同様、スタートメニューからコマンドプロンプトを開き、以下のコマンドでカレントディレクトリをVagrantfileのあるディレクトリに変更してください。

cd C:\vBox

以下のコマンドで、仮想環境を作成、起動します。

vagrant up

仮想環境が作成されるまで暫く待ちます。

Bringing machine 'default' up with 'virtualbox' provider...
  ==> default: Importing base box 'bento/amazonlinux-2'...
  ==> default: Matching MAC address for NAT networking...
  ==> default: Checking if box 'bento/amazonlinux-2' version '1.2.1' is up to date...
  ==> default: Setting the name of the VM: local
  ==> default: Clearing any previously set network interfaces...
  (省略)
  ==> default: Machine booted and ready!
  ==> default: Checking for guest additions in VM...
  ==> default: Configuring and enabling network interfaces...
  ==> default: Mounting shared folders...
    default: /vagrant => C:/vBox

起動が完了したら、以下のコマンドで、仮想環境に接続します。

vagrant ssh

以下のような表示が出ていればOKです。


  __|  __|_  )
  _|  (     /   Amazon Linux 2 AMI
 ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
91 package(s) needed for security, out of 134 available
Run "sudo yum update" to apply all updates.

This system is built by the Bento project by Chef Software
More information can be found at https://github.com/chef/bento

仮想環境の環境構築を行う

以下のコマンドで、タイムゾーンを設定します。

sudo timedatectl set-timezone Asia/Tokyo

以下のコマンド、ロケールの設定を行います。

sudo localectl set-locale LANG=ja_JP.utf8
source /etc/locale.conf


以下コマンドで、初期状態でインスト―ルされているソフトウェアのアップデートを行います。

sudo yum update -y

Rubyのインストール

以下のコマンドでインストール可能なRubyのバージョンを調べます。

amazon-linux-extras list | grep ruby

私の場合、以下のように表示されたので、rubyのバージョン2.6と3.0がインストール可能となります。

 39  ruby2.6                  available    [ =2.6  =stable ]
57  ruby3.0                  available    [ =stable ]

以下のコマンドで、Rubyをインストールします。

私はRubyのバージョン2.6をインストールしました。

sudo amazon-linux-extras install -y ruby2.6

以下のコマンドで、Rubyがインストールできているか確認します。

ruby -v

以下のような表示が出ていればOKです。

ruby 2.6.9p207 (2021-11-24 revision 67954) [x86_64-linux]

Ruby On Railsのインストール

以下のコマンドで、関連RPMパッケージをインストールします。

sudo yum install -y ruby-devel rpm-build git gcc gcc-c++ zlib-devel openssl-devel  rubygems-devel

Railsのバージョン3.1以降では、nodejsとyarnが必要ということなのでインストールします。

まずは以下のコマンドでnode.jsをインストールします。

curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -
sudo yum install -y nodejs

以下のコマンドでyarnをインストールします。

curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install -y yarn

次に、SQLiteをインストールしていきます。
Amazon Linux 2 にはsqlite3のバージョン3.7がデフォルトでインストールされています。
このsqlite3はyumで利用しているらしく、削除することはできません。
しかし、Rails 6を動かすには、sqlite3のバージョン3.8以上が必要になります。
今回はバージョンの3.30.1をインストールします。

wget https://www.sqlite.org/2019/sqlite-autoconf-3300100.tar.gz

以下コマンドで、ダウンロードしたZipファイルを解凍します。

tar xzvf sqlite-autoconf-3300100.tar.gz

最初から入っているsqliteと競合しないように /opt/sqlite/sqlite3 にインストールします。

cd sqlite-autoconf-3300100 
./configure --prefix=/opt/sqlite/sqlite3
make
sudo make install

以下のコマンドで、インストールしたSQLiteのバージョンを確認します。

/opt/sqlite/sqlite3/bin/sqlite3 --version

以下のような表示が出ればOKです。

3.30.1 2019-10-10 20:19:45 18db032d058f1436ce3dea84081f4ee5a0f2259ad97301d43c426bc7f3df1b0b

以下のコマンドでRuby On Railsをインストールします。
今回はRailsのバージョン6.0.4をインストールします。

gem install rails -v 6.0.4

以下のコマンドでRailsがインストールできていることを確認してください。

 rails -v

以下のような表示が出て入ればOKです。

Rails 6.0.4

動作確認

動作確認としてサンプルのアプリケーションを作っていきます。
まずは以下のコマンドを実行してアプリケーションを作成してください。

rails new test-app

以下のようなエラーが出る場合は、「sudo gem pristine –all」を実行してください。

Ignoring bindex-0.8.1 because its extensions are not built. Try: gem pristine bindex --version 0.8.1
sudo gem pristine --all

以下のコマンドで、SQLiteのgemをインストールします。

gem install sqlite3 -- --with-sqlite3-include=/opt/sqlite/sqlite3/include --with-sqlite3-lib=/opt/sqlite/sqlite3/lib
echo 'export LD_LIBRARY_PATH="/opt/sqlite/sqlite3/lib"' >> .bash_profile
source .bash_profile

以下のコマンドを実行して、Gemfileからgemをインストールします。

cd test-app
bundle install 

以下のコマンドを実行して、webpackerをインストールします。

rails webpacker:install

以下のコマンドを実行して、Railsのサーバーを起動します。

rails s -b 0.0.0.0/0

以下のように表示されていればOkです。

=> Booting Puma
  => Rails 6.0.5 application starting in development
  => Run `rails server --help` for more startup options
  Puma starting in single mode...
  * Version 4.3.12 (ruby 2.6.9-p207), codename: Mysterious Traveller
  * Min threads: 5, max threads: 5
  * Environment: development
  * Listening on tcp://0.0.0.0:3000
  Use Ctrl-C to stop

Webブラウザを開いて、URLのアドレスバーに「localhost:3000」と入力してEnterキーを押してください。
以下の画面が表示されていればOKです。


お疲れ様でした!!!