(番外編) ゼミナール Ruby 開発環境の構築(Windows) - BYOD PC のセッティング(18)

はじめに

(注意) この記事は小林研究室に所属するゼミナールのための記事なので、3年生は読み飛ばして欲しい。

今年度ゼミナール所属学生のうち、半数以上が macOS ユーザではなかった。macOS ユーザだったら、「Homebrew でこれだけ入れといてね」で済むのだが、Windows の場合にシステムを構築しようとするとかなり難しい。Windows の方では WSL を導入し、その中で開発環境を揃えようと思う(5月の大型アップデートが来たら WSL2 にする予定)。

Windows Subsystem for Linux のインストール

最初に Windows Subsystem for Linux (以下 WSL と記載) をインストールする。まず、ウインドウメニューの右クリックで「アプリと機能」を選択し、一番下までスクロールして「プログラムと機能」をクリックする。

f:id:hkob:20200424141939p:plain
アプリと機能

開いた画面で「Windows の機能の有効化または無効化」をクリックし、その中にある「Windows Subsystem for Linux」にチェックを入れる。

f:id:hkob:20200424142257p:plain
WSL の有効化

再起動が求められるので、指示の通り再起動する。再起動後は Microsoft Store を開き、「Ubuntu」で検索する。

f:id:hkob:20200424142621p:plain
Microsoft Store にて Ubuntu を検索

開いた画面で「入手」をクリックする。

f:id:hkob:20200424142722p:plain
Ubuntu のインストール

インストールが終わると「起動」というリンクができるので、起動ボタンをクリックする。

f:id:hkob:20200424143015p:plain
起動ボタン

起動すると以下のような画面が表示される。ユーザ名とパスワードを入力すると Ubuntu の起動画面となる。

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: hkob
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 20.04 LTS (GNU/Linux 4.4.0-18362-Microsoft x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Fri Apr 24 14:31:10 JST 2020

  System load:    0.52      Processes:             7
  Usage of /home: unknown   Users logged in:       0
  Memory usage:   30%       IPv4 address for eth1: 192.168.65.130
  Swap usage:     0%

0 updates can be installed immediately.
0 of these updates are security updates.



This message is shown once once a day. To disable it please create the
/home/hkob/.hushlogin file.
hkob@DESKTOP-6SLM86P:~$

rbenv のインストール

ここから先は Ubuntu の上で実施する。Ubuntu では apt を用いて環境構築を行う。 最初に apt の update を行う。

sudo apt udpate

現状でいくつかのパッケージがアップデートされるようなので、以下のコマンドでアップグレードしておく。

sudo apt upgrade

コマンドラインを使いやすくするために最初に fish をインストールしておく。

sudo apt install fish

インストールが終わったら、exec fish として、fish に切り替えておく。こんな感じでプロンプトが変わるはず。

hkob@DESKTOP-6SLM86P:~$ exec fish
¶
Welcome to fish, the friendly interactive shell
Type `help` for instructions on how to use fish
hkob@DESKTOP-6SLM86P ~>                           

ここからは、rbenv のインストール方法を参考に進めていく。まず、git clone をするとのことなので、apt で git をインストールする。

sudo apt install git

指示通り、まず rbenv のリポジトリを ~/.rbenv の下に取得する。

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

次はコンパイルなのだが、まだコンパイラがないので実行できない。apt で build-essential をインストールする。

sudo apt install build-essential

ここで、コンパイルを実行する。

cd ~/.rbenv && src/configure && make -C src

fish 用にパスを設定する。$PATHがコマンドラインで展開されないように\$にしていることに注意する。>> のリダイレクトで追記にしているので、既存の config.fish がある場合には下に追記される。

echo set -gx PATH ~/.rbenv/bin \$PATH >> ~/.config/fish/config.fish

念のため、cat で確認する。

cat ~/.config/fish/config.fish

以下のコマンドで .config/fish/config.fish を読み込む(「.」の後ろのスペースを忘れないこと)。その後、printenv PATH として、rbenv/bin が入っていれば成功である。

. ~/.config/fish/config.fish

さらに config.fish に rbenv の初期化コマンドを追記する。

 echo 'status --is-interactive; and rbenv init - | source' >> ~/.config/fish/config.fish

一度、Ubuntu を exit で終了して、Windows メニューから起動して、exec fish をやってみてエラーがなければ、ここまでは Ok。

ruby-build のインストール

まず、プラグインフォルダを作成する。

mkdir -p (rbenv root)/plugins

ruby-build を git clone する。

git clone https://github.com/rbenv/ruby-build.git (rbenv root)/plugins/ruby-build

ここまで正しく動いているかを doctor で確認する。

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash

Ruby のビルドにはいろいろなパッケージが必要とのことなので、apt でインストールする。

sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev

インストールできる ruby を確認する。最新版が 2.7.1 であることがわかる。

rbenv install -l | grep 2.7

というわけで、最新版の 2.7.1 をインストールする。これはかなり時間がかかる。

rbenv install 2.7.1

終了したら以下のコマンドで通常使う ruby のバージョンを指定する。

rbenv global 2.7.1

最後に ruby -v として Ruby のバージョンを確認すると 2.7.1 が動作していることがわかる。

hkob@DESKTOP-6SLM86P ~> ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]

Visual Studio Code の拡張機能をインストール

WSL をインストール後に Visual Studio Code を起動すると、拡張機能のインストールを推奨される。

f:id:hkob:20200424162620p:plain
Visual Studio Code 拡張機能のインストール

インストールすると Remote-WSL という機能拡張がインストールされる。

f:id:hkob:20200424164131p:plain
Remote-WSL

これにより、Visual Studio Code で WSL 上のファイルが直接編集できるようになる。やり方は、別に説明する。

hkob.hatenablog.com