さて。
最近PCを新しくしたのだが、なんとあんなに環境構築に苦労したくせに、結局またWindowsを購入してしまったのであるww
Linuxを使いたい時は、Hyper-VやAWSのEC2を使えばいっか、と思っていたのだが、神様M氏がとても分かりやすいWSLの資料を作ってくださったので、それに従って導入してみたいと思う。(こういう時、RaiseTechに通ってて良かったと思う瞬間。)
WSLとは何か?
AWSの勉強をするまで、私はWSLというものを知らなかったのだが、そもそもWSLとは一体ナニモノなのか?
WSL(Windows Subsystem for Linux)は、Windows10やWindows Server上でLinuxを使うことができる仕組みのことらしい。
WSLがないときは、Linuxの仮想マシン環境として導入する必要があった。
でも仮想マシンってメモリも食うし、起動時間も長いし、そもそも別のPCという扱いになるから、ネットワーク経由でないと接続できない。(データのやり取りが非常にもどかしい!)
WSLはWindows OSの上にアプリとしてのっかっているようなイメージなので、コマンドをパイプでつないだりもできるらしい!
つまり、ユーザー側としては、WindowsとLinuxという2つのOS間をシームレスに行き来できるということだ。
WSLはあくまでもWindows OSの上に乗っかっているだけなので、ハードウェアそのものを操作することはできないらしいが、そんなことは正直どうでもいいのである。
※そもそも私はそんな高度なことはしないww(←いや、できないw)
とにかく、もうさ、これまでLinuxとMacは普通に使えるのに、Windowsだから使えないコマンドとか、Rubyとかインストールするときに、Windows用のインストーラとかいちいちやるのが面倒だな!ってずっと思っていたんだけど、それがWSLによって、解消されるのでは?と期待に胸が膨らむ。
今まで、みんながMacを使っているのは、カッコいいとかステータスだと思っていたんだけど、違ってたww(Macユーザーに心から謝罪)
話が逸れたが、さっそくWSLを導入してみようと思う。
WSLを有効化する
WSLはデフォルトは無効になっているので、有効にする必要がある。
Windowsの機能の有効化または無効化からGUI的にONにする方法もあるようだが、コマンドでもできるようなので、コマンドでやってみる。
PS C:\Windows\system32> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 展開イメージのサービスと管理ツール バージョン: 10.0.19041.844 イメージのバージョン: 10.0.19042.964 機能を有効にしています [==========================100.0%==========================] 操作は正常に完了しました。
どうやらうまく有効化できた模様。
※PowerShellを管理者権限でコマンド実行しないと怒られる
(´・ω・`)しょぼん
WSL→WSL2にする
WSLには1と2があるらしいので、2に更新する。
Wiki大先生によると、WSL2は1に比べて下記のような特徴がある。
- 本物のLinuxカーネルを使用する[16]。
- Linuxカーネルを仮想マシン上で動作させる。
- Linux側のファイルシステムはNTFS上のディレクトリではなくディスクイメージファイルに格納する。
- ホストとなるWindowsとは別のIPアドレスを使用する。
本物のLinuxカーネルを使用することで互換性が向上し、仮想マシンを使用することでディスクI/O性能の足かせとなっていたWindowsのI/OスタックをバイパスしたことでディスクI/O性能が向上した。デメリットとして起動に数秒を要することやメモリー・フットプリントの悪化があげられる。
え・・・よく意味が分からん。(理解力w)
より軽く、より早く起動できて、ファイルのアクセスも早くなったけど、データのやり取りはネットワーク経由になったってことなのかな。
結局、内部的にはHyper-Vなの?
まあ、いいや。
よくわかんないけど、WSL2にするお。
こちらもPowerShellのコマンドでできるようなので、コマンドでやる。
PS C:\Windows\system32> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 展開イメージのサービスと管理ツール バージョン: 10.0.19041.844 イメージのバージョン: 10.0.19042.964 機能を有効にしています [==========================100.0%==========================] 操作は正常に完了しました。
できたっぽいので、PCを再起動する。
更新プログラムのインストール
WSLのUpdateを実施。
Linuxカーネル更新プログラムパッケージというものらしい。
ダブルクリックでインストールできる。
Next
Finish(早ッ)
WSLの規定バージョンを2に変更する
PowerShellを管理者で、下記コマンドを実行
PS C:\Windows\system32> wsl --set-default-version 2 WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
リンクは、「Linux 用 Windows サブシステムとは」というタイトルで、色々説明してくれている。
Linuxディストリビューションをインストールする
いよいよLinuxのインストール。
MicrosoftStoreからUbuntuを選択(ていうか、MicrosoftStore初めて開いたww)
入手(バージョンは20.04.2 LTSで、450Mくらい)
起動
インストーラが起動するので、Ubuntuのユーザー名とパスワードを設定すればUbuntuが使える状態になる
ここまででWinsows10上でUbuntu(Linux)を使う環境が完成したことになる。
その他お便利設定
Ubuntuのパッケージ管理を更新
Ubuntuのパッケージ管理は、apt-get。
これをアップデートしておく。(色々パッケージ管理種類ありすぎて覚えられない)
sudo apt-get update -y
Ubuntuの設定変更
設定を適宜好きなように変更
zshのインストール
シェルには色々な種類があって、UbuntuのシェルはBash。(シェルについては別途まとめ記事を書こうかな)
Macはzshらしいので、それに合わせて変更する。
sudo apt install zsh -y
zshの起動
インストールが完了したら、そのまま「zsh」と打ち込むとzshが起動できる
初回起動時に設定を聞かれるので、2の推奨設定を選ぶ
zshをデフォルトの設定にする
「chsh」と打ち込む
zshの場所は、/usr/bin/zsh
次にUbuntuを立ち上げたときに、コマンド入力画面が「%」になっていれば、デフォルトがzshになっている。(bashの場合は「$」)
Homebrewのインストール
これ、Windowsでめっちゃ使えたらいいのに!って思ってたコマンドw
MacとかLinuxじゃないと使えなくて、Windowdsユーザーをやめたくなるコマンド。
Homebrewのページに行って、ファイルのアイコンを押すとコマンドがコピーできるので、それをUbuntuのzshに張り付けてEnter
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Next stepsに次にやることが書かれているので、その通りに実行
一通り実施終わったら、brew doctorコマンドで診断。
~ % brew doctor Your system is ready to brew.
これで、晴れて念願のHomebrewが使えるように・・・!!!