WSL2にArch Linuxを使いたくてインストールしたやつがいるらしい

私です

あくまで今回は備忘録なので、基本的に参考記事の通りに動かしたものです。

# 経緯

この度新社会人となりました。研修でJavaの勉強を改めて勉強しなおしているのですが、動作確認のためにわざわざIDEでやるのは面倒くさいと感じたためターミナル上で動かしたいと思ったのですが、WindowsのターミナルはコマンドプロンプトもPowershellもいまいち使い勝手が悪い(Powershellはあんま好みじゃない)。なのでWSL
上で動かしたいと思ったのですが、WSLとして公式に配布されているディストリビューションにArch Linuxが無い。はてどうしたものか…

# ツールがあった

まあとにかくググってみるのが一番です。それで調べてみると[WSLでArchLinuxを入れて使う記事](https://qiita.com/Gen-Arch/items/f2921e2b010115aa2495)がありました。この中のあらかじめ作成済みのArch Linuxのイメージを登録してくれるツールを使ってやってみることにします。

ファイルをダウンロードして解凍するとArch2.exeファイルがあり、それを実行することによってインストールができます…が実行するディレクトリがそのままWSLで使用するOSイメージの場所となってしまうので、実行する前に管理しやすいディレクトリに移動して実行することをお勧めします。少なくともダウンロードフォルダに置いたままはあんまり…

# ArchLinuxとWSLの環境整備

## バージョンの更新

インストールすることができたら、`wsl -d Arch2`とコマンドを実行することでバージョン更新をします。

## ミラーリストの変更

デフォルトだとアメリカのミラーを参照するらしいので、`/etc/pacman.d/mirrorlist`を開いて日本のミラーリストを一番上に持っていきます。

[参考](https://wiki.archlinux.jp/index.php/%E3%83%9F%E3%83%A9%E3%83%BC)

## pgp鍵のリセットとpacmanの更新

鍵を更新します。

```bash
//鍵の初期化
$ pacman-key --init

//鍵の更新
$ pacman-key --populate archlinux
$ pacman -Syy archlinux-keyring

//パッケージ更新
$ pacman -Syu
```

## ユーザー云々

Arch Linux上でのユーザーを作成します。

```bash
$ pacman -S vi
$ visudo
$ useradd -m -s /bin/bash -G wheel <USERNAME>
$ passwd <USERNAME>
```

デフォルトユーザーを変更します。powershellでArch2.exeを配置したディレクトリまで移動して以下のコマンドを実行します(今回のケースは`C:\User\usr\WSL`ファイルに実行ファイルを配置しているものとします)。

```powershell
C:\Users\usr\WSL> .\Arch2.exe config --default-user <USERNAME> 
```

## Windows Terminalの設定

Windows Terminalを起動して設定を開きます。VSCodeを利用しているとある程度自動的に入力されます。

```config
 "profiles":
    {
        "defaults":
        {
            // Put settings here that you want to apply to all profiles.
        },
        "list":
        [
            {
                "guid": "{<your uuid>}",
                "hidden": false,
                "name": "Arch2",
                "commandline": "wsl.exe ~ -d Arch2 --user <user name>",
                "cursorShape": "filledBox",
                "source": "Windows.Terminal.Wsl"
            },
        ]
    },
```

最後にAURヘルパーをインストールしていきます。

## yayのインストール

AURヘルパーをインストールするためには`git clone`コマンドを利用します。カレントディレクトリにそのパッケージのディレクトリが生成されるため、ディレクトリが乱雑に生成されるのが嫌な場合はそれ用のディレクトリを作成し、そこに移動して以下のコマンドを実行することをお勧めします。

```bash
//必要なパッケージのインストール
$ pacman -S base-devel git
//yayのインストール
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si
```

# Javaの環境構築

ここまで結構時間がかかっているのですが、一応今回の環境構築の理由はJavaをターミナル上で実行できるようにするという理由であるため、Arch LinuxにJavaを入れていきます。

JDKに関しては(Arch Linux Wikiの記事)[https://wiki.archlinux.jp/index.php/Java]を参考にして自分に合ったものを選択してください。

今回私はOpenJDKの最新版を選択しています。パッケージ名に関しては念のため`sudo pacman -Ss openjdk`で調べておくと良いです。

基本的にはインストールすることでパスは設定されるとは思います。通らなかったらググってください(他力本願)

`java --version`で確認することができます。

# VSCodeで良い感じにする

今この状態だと結局ターミナルを使ってプログラミングすることになるため、これではWSLのメリットがそんなにないのでなんかいい感じにしたいですよね~~(語彙力無し)~~

VSCodeの拡張機能でRemoteというものがあります。

https://github.com/Microsoft/vscode-remote-release

これはWSLをインストールすると推奨としてポップアップが結構でてきます。これをインストールしてWindows TerminalからWSLにログインした状態で`code .`とコマンドを打つと…

![WSL.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548566/e19eb468-a40d-6a7e-f764-26cec694aa8f.png)

こんな感じにもう一つVSCodeのウィンドウが開きます。これで編集およびターミナルで動作確認ができるようになります(なお画像の黒塗り部分はそんなに意味はありません。一応ユーザー名なんですけどHNなので隠す理由はほとんどなかったことに塗ってから気づいた)。

# まとめ

ターミナルで動作確認する例はほとんどありませんが、Hello Worldを表示する環境としては結構良い感じにはなったのではないでしょうか。

~~まあこれ一か月前に書いて今書き終えたものなので、もうほとんど使ってないのですが~~

駄文失礼いたしました。