見出し画像

WSL2を試すために調べました

Windows Subsystem for Linux
これが、WSLと略されます。

Windowsの話です。
下記の記事で、実際に準備をした記録をまとめています。

作業をしていくと、
「へ~、こんな方法があるんだ。」
「そうだったのか・・!」
と躓くと調べます。全部まとめた一つの記事にしていたのですが・・。
分かり辛かったので、分割しました。


雑談

どうしてもDockerを使いたかった過去の私は、 VirtualBox + Vagrant を使ってました(Vagrantfileに、起動時dockerインストールとかも)。でも、起動が遅い…。
あと、細かなバージョンの差異が本当に嫌…。うまく動かない時もあった…。

ちなみに、VirtualBox + Vagrant は良いですよ。
他の人も同じ環境を手っ取り早く準備してもらうなら・・。今回は、

私「Docker が使いたかっただけなんです。」
??「Windows10 Home だとHyper-V 使えないので、Proにする?」
私「ちょっと値段が高くなるので、無理です!!」

そう、docker だけが欲しかったんです。
そして選択肢として、お金かかるなら諦める!というのが私です…。

そんな時にWSL2 で…というのを見つけて、試したくなりました。
ちょうど今作成しているものも、実際のDBに接続してテストしないとリリースできないな…と思っていたので、タイミングとしては丁度良い。

Docker Desktop は意地でも入れません!!
※ 使う容量も最小限にしたい人間だからです。コマンド叩くか、シェル準備すれば良いじゃん派・・。

実際に方法を調べていく中で、色々な手順と遭遇しました。
その時見つけたものをそのままなかったことにするのは、何だかもったいないので、それをまとめていきます。


『Windows の機能』 を開く 方法

【コントロールパネル経由】
 1-1-1. Win + R
 1-1-2. control を入力してOK(『コントロールパネル』を開く)
 1-1-3. プログラム を選択
 1-1-4. プログラムと機能 を選択
 1-1-5. Windows の機能の有効化または無効化 を選択

【設定経由】
 1-1-1. Win + X ⇒ Win + N(『設定』を開く)
 1-1-2. 「設定の検索」に、「windows の機能」を入力して、Windows の機能の有効化または無効化 を選択

 ・「Windows Subsystem for Linux」もしくは、
  「Linux 用 Windows サブシステム」 を探して、チェック

色々なサイトでは、英語のみを見ることが多かったですが、
ただ単に 名称が翻訳されたもので、同じものとのことです。


※ WSL をコマンドで一気に有効化する 方法

『Windowsの機能』を開く必要はなく、
PowerShell を管理者権限で起動して、下記実行だけでもOKらしい。
再起動は必要とのこと。

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux


Linux環境を選んで準備する

【Microsoft Store経由の場合】
 ・WSL で調べて、好きなのをポチポチっとダウンロード

【手動の場合】
 ・https://docs.microsoft.com/ja-jp/windows/wsl/install-manual 
 ・好きなものを選んで、ダウンロード
 ・Add-AppxPackage 【ダウンロードしたファイル.appx】
 ・上記を実行することで、インストール完了となる

【手動でインストール箇所も制御したい】
 ・ディストリビューションのtar.gz をダウンロード
 ・wsl.exe --import 【名前】 【インストール場所】 【tar.gzファイル】

今回は、3つめの方法を取りました。理由は、

インストール箇所を自由に設定したかったからです。

この方法に辿り着くまでに時間がかかりすぎました・・。
調べても全然ヒットしない・・。

それもそのはず。 「Add-AppxPackage」の方で、指定しようとしていたんですから。(方法は一つしかないらしいです)

そんな中、ディストリビューションを移動する方法を知りました。
やっていることは、
「tarにexportしてimportする」ということ。それは、wslコマンドで。

ちょうどその時、少しの時間外に出ることになったので作業を中断したのですが、

「最初からtarを準備して、importすれば良いのでは?!」

と歩きながら思い、調べた結果。ありました。
直接そのサイトは記載しませんが、他にもtar をダウンロードする再度があったのでメモとして残しておきます。

・Ubuntu の他のtar 
  https://wiki.ubuntu.com/WSL
  「Installing Ubuntu on WSL via rootfs」から選ぶ。
・CentOS の場合
  https://github.com/wsldl-pg/CentWSL
  のリンク(Archiveですけど)から、選ぶ。

※ Microsoft Store or Add-AppxPackage 経由の人が、
インストール先のDriveを変えたい場合は、「設定 > システム > 記憶域」の「新しいコンテンツの保存先を変更する」で変更するとできるらしいです。


参考サイト

ちゃんと公式にWSL導入の手順が書いてありました。

・ Ubuntu の公式 
・ Microsoftの公式 

もちろん、docker も導入手順が公式にちゃんと書いてありますね。

・ docker の公式手順 
・ docker-compose の公式手順

公式が手順を書いているのは、本当に有難い。
それが分かりやすいのであれば、なおのこと助かりますね!


作業後記(感想)

WSL2、良いですね。
Windows10 ユーザーであれば、やっておいて損はないです。
docker や docker-compose を導入する時は、bash 化してすぐに準備ができるようにすれば良いですし(私は準備済みです。改行コードを LF にし忘れてうまく動かなかったのは内緒です・・)。

まだ試していませんが、

「.wslconfig」というファイルを、 ユーザーフォルダの中に作成。

localhostForwarding=True

を準備しておけばOKらしいです。
これなら、普通にインストールした時と動作が変わらないですね。
素晴らしい!業務でも使えると思います!!

もう一つ、「.wslconfig」に下記の設定をした方が良いらしいです。

[wsl2]
memory=3GB
swap=0

WSL って、PC搭載メモリの80% が使えるらしいです。
そんなに使わないで・・!という場面もあります。(コーディング中にVSCodeが結構メモリを使う場合があるため)
つまり、本来やりたかったコーディングが遅くなる…というのを避けるため、WSLが使うメモリを制限しておこう!
という話ですね。(暫定処置だそうです)


会社のPCなら、容赦なくDBをインストールしたりとかしますが、自分のPCだと汚したくない気持ちが生まれます(おい)。
この方法なら、 自宅のPCでも利用できますね。いらなくなったら、 wsl の登録を外して、「ext4.vhdx」を削除しちゃえば良い。

しかも、docker image が自分のPCではなく、「ext4.vhdx」の中にあるのも嬉しい。自分のPCのどこに…とか探したりして削除…とか、image 探して削除…とか、面倒な手間がない。

今後、使っていきたいと思うような体験でした。

※ 下記みたいに、ちょっと変態(褒め言葉)なこともできるみたいですね。



さて、そろそろ本題のプラグイン作成に戻ります。

上記の続きです(1週間で終わるとか言ってた自分、見積もりが甘いぞ)。

次に記事を書くのは、プラグインが出来上がった時にします。
(そうじゃないと、書く内容がなさすぎるので・・)


読んでくださった方、ありがとうございました。
それでは、また。

いただいたサポートは、今後の創作活動に役立てさせていただきます。