スキル学習・解説

【徹底検証】Windows10でTake off Railsの環境は作れるのか?

どうも、みーまです。

最近、Ruby on Rails教材の「Take off Rails」を購入したのですが、この教材はmacOS向けに作成されています。私自身はMacBookProを同時購入したので差し支えないのですが、元々は「Windows10でもやろうと思えばできるのでは?」と考えていましたので、今回はWSLを使った構築にトライしてみました。

注意

Take off Rails自体はmacOS以外をサポートしていません。教材自体のサポートに影響はありませんが、この環境特有である場合は、自分で検索して調べたりする必要がありますので注意しましょう。

でもこれで学習できたらトラブル解決力も含めてかなりスキル上がりますし、「macOS向け教材をWindows10上のLinuxでやりました」ってのは今レアかも。そういう個人レベルの努力量って以外と企業さん求めてますからね。

(2019.11更新) 限定公開から通常公開にしました。

 

結論

環境設定編は本ページの手順と教材を併用してWindows10で進められます。まだ購入に迷うかたは次の「購入前の方へ」ポイントまで、PCを操作しながら読み進めてください。

 

今すぐ購入する方はこちら

Take off Railsを購入する

 

WSLとは?

Windows10のバージョン1709から利用可能になった、「Windows Subsystem for Linux」という機能で、Windows10上でLinux系統の各コマンドが扱えるようにしたものです。

VirtualBOXやVMWareなどは完全にコンピュータを再現(エミュレート)していますが、WSLはLinuxOSの基本部を再現して、Windowsとの橋渡しをするような感じです。

それでは早速構築に進みます。

Take off Rails前の準備(WSL有効化~bash起動まで)

WSLを有効化する

まず、Take off Rails教材を開く前に環境を整えます。

WSLは標準で無効になっていますので、有効にします。

「スタートメニュー」「Windowsシステムツール」「コントロールパネル」を選択して、右上の「表示方法」をカテゴリ以外に変更します。

「プログラムと機能」がありますので、開きます。「Windowsの機能の有効化または無効化」を選択し、「Windows Subsystem for Linux」をチェックし、「OK」します。

Windows Subsystem for Linuxの有効処理が始まります。正常に終了したら再起動してください。

ここで0x????????のようなエラーコードが出た場合、恐らくWindows側の構成ファイルに異常があります。私がこのパターンに該当しました。

マイクロソフト提供のツールでWindows10のセットアップ用USBメモリを作成し、Windows上からsetup.exeを実行することで、環境、アプリを維持したままWindowsの上書きインストールが可能です。システムファイルチェッカで治ったパターンもあるようですが、私の環境では上書きインストールのみでしか治りませんでした。

この手順は間違えるとデータロストの可能性もありますし、わざわざこの為にリスクを冒すことはオススメしない為、記載しません。今後プログラミングに進むならMacBookは必要になると思いますので、購入を検討しましょう。

「Windowsのインストールし直しはちょっと無理かな」と思われた方は残念ながらここで終了です。うまく機能を有効化できた方はパソコンを再起動後、次へ進みます。

Linuxディストリビューションをインストールする

うまくWSLの有効化ができたら、Linuxディストリビューション(WSLのOS部分)を入手します。Microsoft Storeに無料公開されていますので、ストアアプリを起動して入手しましょう。本手順ではUbuntuを使いますので、バージョンは自由で構いませんが、Ubuntuにしてください。

検索から「Ubuntu」と検索し、表示されたアプリを入手しましょう。ボタンが「入手」「インストール」「起動」のように変化するはずです。「起動」しましょう。

英語でメッセージが表示されます。「take a few minutes」と出ていますので、数分待ちましょう。

次に、Ubuntu上でのユーザー名を作らなくてはいけないので、入力します。Windowsユーザ名と別でも同じでも構いません。

パスワードも聞かれます。間違い防止の為に2回聞かれますので、入力しましょう。後はインストールを待ちます。

作成したユーザ名@貴方のPC名~$」と出たらインストールできています。おめでとうございます。次からはスタートメニューのUbuntuから起動できます。

購入前の方へ

ここまで動作するなら、Take off Railsはあなたの環境で学習可能なはずです。ここと教材を往復しつつ、環境設定編を進められます。

 

今すぐ購入する方はこちら

Take off Railsを購入する

環境設定の前の環境設定

準備

Ubuntuのウィンドウバーを右クリックして、「プロパティ」を選択します。「編集オプション」から、「Ctrl+Shift+C/Vをコピー・貼り付けとして使用する」をチェックしてください。これが無いとコードのコピペ(貼り付け)は左上アイコンを右クリックして、「編集」「貼り付け」になり、大変手間がかかります。

次にHomebrewを入れる為の準備です。まず、下記をコピペしましょう。これでUbuntuがアプリをDLする先が日本(JAIST)になります。初めてのsudoのときはパスワードを聞かれます。あなたが決めたパスワードです。

sudo sed -i -e 's%http://.*.ubuntu.com%http://ftp.jaist.ac.jp/pub/Linux%g' /etc/apt/sources.list

次に、今のアプリケーションを最新に更新します。コマンドは下記です。「libssl」についてサービスを再起動するか質問が出ますので、Yesにしておいてください。

sudo apt-get update -y
sudo apt-get upgrade -y

Homebrew(Linuxbrew)のインストール

次は、開発環境のインストールが簡単になる、Homebrewをインストールしていきます。これはTake off Railsのカリキュラムに含まれていますが、教材のHomebrewとインストール時の作業が異なりますので、Homebrew開発元がLinux/WSL向けに用意した「Linuxbrew」のインストール手順を解説していきます。

必要アプリケーションの準備

linuxbrewの前に必要なコンポーネントをインストールしておきます。

sudo apt-get install build-essential curl file git zlib1g-dev -y

上記にはLinuxbrewに直接は不要なものが1つありますが、後に教材の項目でエラーにならないよう、先に入れています。(zlib1g-dev)

Linuxbrewのインストール

公式で提供されているスクリプトを実行します。「Press RETURN to continue」と出ますので、Enterで進めます。インストールは長いですので、しばらく待ちましょう。

sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"

環境設定をします。下記を貼り付けしてください。

touch ~/.bash_profile
echo '# Homebrew on WSL' >>~/.bash_profile
test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profile
echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile
echo 'umask 002' >> ~/.bash_profile
sudo mkdir -p /home/linuxbrew/.linuxbrew/var/homebrew/linked
sudo chown -R $(whoami) /home/linuxbrew/.linuxbrew/var/homebrew/linked

いったんUbuntuを終了し、下記コマンドで正しく動作しているか確認します。

brew doctor

「Your system is ready to brew.」で完了です。お疲れ様でした!

ひとまず「基本的なUNIXコマンドを覚えよう」を読んで、また戻ってきてください!

WSLとWindows10では直接ファイルのやりとりが可能

インストールするディストリビューションによって変わりますが、WSLの構成ディレクトリはWindowsからでも確認できます。WSLからはWindowsのCドライブが/mnt/cでアクセスできますので、cpやmvで受け渡しが可能です。

Macよりインストール待ち時間が長い?

WSLはWindowsのファイル構造でLinuxが対応できるように、再現(エミュレート)されている為、そこがボトルネックになるようです。インストール以外の動作は気になりませんので、学習への影響は無いと思います。

続き(教材差分情報・随時更新)

ここからは、教材とUbuntu環境でちょくちょく違うところがありますので、本記事を見つつ構築を進めてください。

Ubuntuに用意されているプログラム(apt)とHomebrew経由について

プログラムに差異はありませんが、brewで更新するような指示も教材にあったりしますので、元々入っているほうを消してbrewで入れ直した方が教材とのアンマッチが減るのですが、PATHの追加設定なども発生する為、こちらでは推奨していません。本記事で詳細手順は説明しませんので、個々の判断で都度入れ直し、リンクの張り直しなどを行ってください。

sudo apt remove [program_name]
brew install [program_name]

Ruby のバージョン管理

Rubyのバージョンについて

Rubyは最初からは入っていませんので、「ruby -v」でエラーが出ても大丈夫です。

rbenvの導入方法

rbenvのインストールは時間がかかりますので、気長にすすめてください。

次にターミナルで入れるとされる「rbenv init」はWSL環境だとオプションが必要なようです。rbenv-doctorの実行は省略して、下記コマンドで「rbenv init」の代わりがUbuntu(bash)起動時に行われるようにします。特に何もエラーが返ってこないなら正しく入力されています。

echo '# rbenv init on zsh' >>~/.bash_profile
echo 'eval "$(rbenv init -)"' >>~/.bash_profile

一度Ubuntuを終了して、起動したときにエラーが出ないのを確認してください。そのままRubyのインストールに進みましょう。

エディター【VSCode】の導入

VSCodeの導入

公式サイトからWindows向けを入手してインストールしましょう。インストールの途中でオプション(チェックボックス)がありますが、PATHへの追加は必ず入れておいてください。Windowsの再起動が必要ですので行いましょう。

インストールが完了したら、拡張機能の「japanese」を入れます。VSCodeの再起動がかかって、教材通りの日本語環境で使えるようになります。

VSCodeのおすすめ設定

1は既にできていると思います。下記を実行してみましょう。(スペースやピリオドも含めてください。

code .

VSCodeがフォルダを開いた状態で起動したら成功です。

VIMを最低限使えるようにする

Ubuntuでのvimtutorはデフォルトが英語ですので、言語を指定して起動すると、教材通りになります。

vimtutor ja

Ubuntuでのvimはapt経由な為brewで入れ直したいかもしれませんが、ただ削除するとsudoから呼出するときにエラーになりますので、無理に入れ直す必要はありません。

どうしても入れ直したい場合は下記が例になります。viが使いたい場合は、3行目をマネしてviも登録してください。

sudo apt remove vim -y
brew install vim
sudo ln -s /home/linuxbrew/.linuxbrew/bin/vim /usr/local/bin/vim

zshのインストール

1.shellの変更

brewでインストールした後、/etc/shellsの修正前に、下記のコマンドを追加してください。zshインストーラが表示している追加作業と、linuxbrewとhomebrewのディレクトリ違いを解決するコマンドです。この作業をしておくと教材通りにzshへ切替えできます。

touch ~/.zshrc
echo '# zsh on WSL' >>~/.zshrc
echo "fpath=(/home/linuxbrew/.linuxbrew/share/zsh-completions $fpath)" >>~/.zshrc
chmod go-w '/home/linuxbrew/.linuxbrew/share'
sudo ln -s /home/linuxbrew/.linuxbrew/bin/zsh /usr/local/bin/zsh

WSLではタイトルにzshとは出ませんが、プロンプトが「コンピューター名」だけになっていればOKです。(bashはユーザー名@コンピューター名)

2.Pathの登録

Mac向けHomebrewと構成が変わりますので、Pathの登録は下記コマンドで実施したことにしてください。実行後は一度WSLを終了します。

echo '# Homebrew on WSL' >>~/.zshrc
test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.zshrc
echo 'umask 002' >> ~/.zshrc
echo '# rbenv init on zsh' >>~/.zshrc
echo 'eval "$(rbenv init - zsh)"' >>~/.zshrc

zshへの切替えとHomebrewのパス設定、rbenv設定までは完了です。お疲れさまでした。

バージョン管理ツール Git の解説と導入

Gitの導入方法

gitはHomebrewを導入する為に必要でしたので、apt経由で既にインストールされています。Homebrew管理にしたい場合は、先に下記のコマンドで削除しましょう。

sudo apt remove git

Git の基本的な使い方 vol.1

git commit

Macでは不要なのですが、Ubuntu環境では投稿者名とメールアドレスを定義しないとcommitができません。先にやっておきましょう。(Amazon Linuxなどでも必要ですので、macOSが特別なのかもしれません)

git config --global user.name yourname
git config --global user.email yourmail

GitHub との連携

公開鍵と秘密鍵の作成

「.ssh」ディレクトリがありませんので、mkdirで作成してアクセス権を付与しましょう。

sudo mkdir ~/.ssh
sudo chown -R $(whoami):staff ~/.ssh

 

秘密鍵の登録

そのまま教材通りにssh-addしてもエラーで登録できませんので、まず下記でssh-agetを起こします。Agent PIDだけ帰ってくれば起動していますので次に進めます。

eval `ssh-agent`

「ssh-add」の「-K」はmacOS独自ですので、-Kは付けられません。それだけに、どこかに情報を保存しておくのが難しいです。

後の講座にある「コマンドのショートカットの登録」などで操作を簡易化する等検討してみてください。特に学習には困らないかと思います。

最後に

お疲れさまでした。

この先はRailsに入るまで、特に教材と異なるところはないと思います。引き続き頑張りましょう!

 

未購入の方へ

どうでしたか?なんとかできそうだなと思う方は、Take off Railsで学習を初めてみましょう。

今すぐ購入する方はこちら

Take off Railsを購入する