Windows 10でRubyの開発環境を用意したい
はじめに
Windows 10 Home Edition
にRuby
の開発環境を構築する方法の記録です。
RubyをWindowsへ直接インストールするのではなく、Windows上にLinux仮想マシンを構築し、Linux上にRubyをインストールします。
理由としては、Ruby on Rails
の開発環境としても使うことも想定していて、多くの場合、リリース先の本番環境はLinuxであると思ったからです。
今回は、Linuxをインストールする仮想マシンとしてVirtualBox
を使います。
また、仮想マシンの作成や管理を簡単にするためにVagrant
も使います。
環境について
使うもの
今回使うものは、主に以下です。
- OS: Windows 10 Home Edition
- VirtualBox 6.1.18
- Vagrant 2.2.14
- rbenv 1.1.2-44-gd604acb
- Ruby 2.7.2
- Linux仮想マシン
- OS: Amazon Linux 2
Home Edition
でもLinuxの実行環境にWSL(Windows Subsystem for Linux)を使う方法が可能になりつつありますが、僕の環境ではHyper-VとVirtualBoxの併用がうまくいかず断念しました。
作り方に興味がない人向け
こちらのGitリポジトリに一式あるので、cloneして、ディレクトリの中でvagrant up
してください。
使うツールの補足
VirtualBoxとは
本題とは関係ないですが、簡単に。
VirtualBoxは、Oracleの主導で開発されているオープンソースの仮想化ソフトウェアです。
これを使うことで、Windows
の中でLinux
などの他のOSを実行することができるようになります。
Vagrantとは
Vagrantは、仮想マシンの作成や管理を簡単にするためのツールで、HashiCorp社が開発しています。
Vagrantfile
という設定ファイルに書かれた内容をもとに、仮想マシンを起動、管理してくれます。
環境構築
環境を作成していきます。
以下のステップになります。
- 仮想化ツール(VirtualBox)とVagrantのインストール
- 仮想マシン(Amazon Linux 2)を作成する
- 仮想マシン(Amazon Linux 2)にrbenvをインストールする
- 仮想マシン(Amazon Linux 2)にRuby をインストールする
仮想化ツール(VirtualBox, Vagrant)のインストール
ここから環境構築に入ります。
詳細は割愛しますが、まずは仮想マシンをインストールします。
VirtualBoxは、ここから、Vagrantは、ここからインストーラーをダウンロードして入れます。
仮想マシン(Amazon Linux 2)を作成する
続いて、Linux仮想マシンを作成します。
ここからは、コマンドプロンプトを開き、WindowsでのCLI操作になります。
Windowsキー + R
を入力し、ファイル名を指定して実行
というウィンドウが出たら、cmd
と入力し、OK
をクリックするとコマンドプロンプトが開きます。
- 作業用のディレクトリを作成して、その中に入ります。
-
vagrant init
コマンドで、Vagrant設定ファイルのひな形を生成します。Vagrantfile
が作成されます。
-
vagrant up
コマンドで仮想マシンを作成・起動します仮想マシンイメージのダウンロードなども行うため、作成にそこそこ時間がかかります。
-
vagrant ssh
で仮想マシンにログインし、起動を確認します。以下のような画面が出ればOKです。
仮想マシン(Amazon Linux 2)にrbenvをインストールする
rbenv
をインストールします。
vagrantでLinuxにログインした状態で、以下を実行します。
- 必要なツールとライブラリをインストールします。
- Githubからrbenvを取得してインストールします。
- Shellでrbenvコマンドを認識するように、設定ファイルにパスを登録します。
- Shellの設定ファイルを再読み込みし、rbenvコマンドを認識するようにします。
ruby-build
プラグインをインストールし、rbenvでrubyをビルドできるようにします。
仮想マシン(Amazon Linux 2)にRuby をインストールする
rbenvの設定が終わったので、やっとRubyをインストールできます。
-
rbenv install
でRuby 2.7.2をインストールしてみます。結構時間がかかります。
rbenv versions
でインストール済みのRubyのバージョンの一覧を見ることができます。
-
rbenv global
コマンドで、デフォルトで使用するRubyのバージョンを指定します。これで、
ruby
コマンドを実行できるようになります。
-
動作確認します。
rubyコマンドと、irbが使えるようになったことがわかります。
おまけ1: ホストマシン(Windows)のファイルを見れるようにする
これで、Rubyのインストールまでおわりました。
しかし、このままだとWindowsで書いたRubyのコードをLinuxで参照することができないので、使いづらいです。
Windowsで作成したファイルをLinuxから参照できるようにVagrantの共有フォルダの設定を行います。
次のステップでフォルダを共有します。
- 共有フォルダに必要な
Vagrant
のプラグインをインストールする Vagrantfile
と同じフォルダにsrc
フォルダを作成するVagrantfile
に共有設定を追記する
手順
- vagrantから抜けてWindowsで作業します。
-
vagrant-vbguestプラグインが入っているか確認します。
以下となっていればのように、
vagrant-vbguest
が表示されていなければインストールする必要があります。
- vagrant-vbguestプラグインをインストールする
-
vbguestのステータスを確認します。
Host OSとGuest OSにインストールされているGuestAdditionsのバージョンがあっていないようです。
- vbguestのバージョンを合わせます
- 設定を反映するため仮想マシンを再起動します
- vbguestのステータスを再度確認すると、OKになっています
-
Vagrantfileにファイル共有設定を追加します
Vagrantfile
を開き、以下のコメントアウトされた行を変更します。
以下のように、コメントを解除しWindowsマシン上の`src`フォルダをLinux上で`/home/vagrant/src`として参照できるようにします。
-
共有の確認のためのRubyスクリプトを
src
フォルダに作成します。Windowsでテキストエディター(メモ帳など)を開き、
src
フォルダにhello.rb
を以下の内容で作成します。
-
vagrantにログインし共有したフォルダを確認します。
src
の中でhello.rb
が共有されていることがわかります。
まとめ
長くなってしまいましたが、WindowsにRubyの実行環境を作ることができました。
今回の作業は一通り、こちらのGitリポジトリにある、Vagrantfile
で自動化できたので、今後再利用できるといいなぁと思います。