search
LoginSignup
9
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

wsl構築(archlinux)

wslの知見がそこそこ溜まってきたので書き連ねていきます。
同様にwslの環境を作る際などご参考いただければと思います。

前準備

今回はwslにてarchlinuxを動かすをメインにお話をするのでwsl導入のお話は飛ばします。
下記公式のページを参考にしながらwslの環境を整えてください。

またterminalについては筆者のおすすめとしてはwindows terminalをお勧めします。
下記storeから落とせるので良ければご使用ください。

terminalの設定はvscodeをお勧めしてます。いずれもmicrosoftが作ってるので親和性が高いですね。
vscodeはこちら

下記のご準備ができたら次項へお進みください。
1. wsl install
2. windows terminal install
3. vscode install

環境

今回構築する環境となります。

項目 内容
version wsl2
terminal windows terminal
os Archlinux
システム管理 systemd

Archlinuxのインストール

archlinuxの導入方法としては下記2点があります。

方法はお好みですが筆者は最近めんどくさくなってきたので後者のツール使ってます。
※Archならいくらでも環境更新できるので

本記事でもこの方法を記載します。

ツールのダウンロード

下記をクリックしてツールをDL&解凍します。
https://github.com/yuk7/ArchWSL/releases/download/20.4.3.0/Arch.zip
↓下記から最新版のArch.zipをDLしてください
- https://github.com/yuk7/ArchWSL/releases
- https://github.com/yuk7/container-systemd-init-tool/releases ※systemd対応版

解凍すると下記ファイルがあります。
Arch.exeを実行すればインストールが始まりますが。実行ディレクトリ=wslで使用するOSイメージの場所になってしまうので
実行する前に管理しやすい場所に置くのをおすすめします。
※%HOMEPATH%\wslなどに筆者はおいてます。

- Atch.exe       => Archをインストールするツールです。ファイル名 = wslで登録されるディストリビューション名になります。
- rootfs.tar.gz  => すでに作成済みArchのイメージです。

installが完了したらwindows terminalを起動します(デフォルトpower shellが立ち上がります。)
下記入力して起動してるか確認

PS C:\Users\ymdts> wsl -l -v
  NAME            STATE           VERSION
  Arch            Stopped         1

ここまで出来たら次に環境を整えていきます。

ArchLinux環境整備

インストール直後だと、環境が古いせいでうまく動作しませんので整えていきます。
下記コマンドで入れます。

PS C:\Users\ymdts> wsl -d Arch

mirror listを変更

そのままだとアメリカあたりのミラーを見ちゃうので日本のを持ってきます。
↓参考資料
https://wiki.archlinux.jp/index.php/%E3%83%9F%E3%83%A9%E3%83%BC

$ vim /etc/pacman.d/mirrorlist

※Japanのものを上に持ってきてください。上から到達可能なものを参照します。

pgp鍵リセット

下記を実行して鍵を更新します。 ※これをやらないとパッケージインストール時こけます。

# 鍵の初期化
$ pacman-key --init

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

# パッケージの更新
$ pacman -Syu

userの作成&sudo

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

デフォルトユーザー変更

power shellでArch.exeを配置したディレクトリまで移動して下記入力

PS C:\Users\ymdts\wsl> .\Arch.exe config --default-user <user name>

windows terminal設定

設定を開き下記を入力 ※vscodeつかってればある程度自動で入ります。

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

systemd環境構築

wslでは独自のinitシステムを使用しているため、そのままではsystemdをを使用することができない
使用できるようにするgenieというツールがあるのでこちらを使用します。
※wsl1 -> wsl2に変更した環境しか動かない可能背有り?(筆者再度やってみたらだめでした。)
※オプションでgenie -c と入力するとsystemdが使用できる環境で立ち上がる模様

yay install

genieのインストールはAURヘルパーを使用するのが楽なのでyayを入れましょう

記事は下記もありますがコマンドだけパパっと記載しておきます。
https://qiita.com/Gen_Arch/items/ad7aef73cfc5a12b4e45

$ cd ~ ; mkdir abs;
$ pacman -S base-devel git
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si

makepkgでこけたらこちらを参考に → https://qiita.com/Hayao0819/items/1d647683bf458d10351a

genieのインストール

下記コマンドで入ります。

$ yay -S genie-systemd

またgenieでは.NETCore 3.0ランタイムを明示的にインストールする必要があります。
同様に、1.24以降の.NET Core 3.1ランタイムもインストールする必要があります。
これも下記でインストールできます。

$ cd ~/abs
$ mkdir dotnet; cd dotnet
$ yay -S wget
$ wget https://github.com/arkane-systems/genie/files/3827049/dotnet-PKGBUILD.tar.gz
$ tar -xzvf dotnet-PKGBUILD.tar.gz
$ makepkg -si

立ち上げ方法解決 (2020/09/22 追記)

下記genieからシェルを指定で立ち上げることでsystemdが使用できるようだ。

$ genie -c <shell>

例:zshだと
$ genie -c zsh

※windowsのexeファイルなどは実行できなくなり、clip.exe経由でのクリップボード共有など不可になるので注意

tmuxのクリップボード共有

tmuxでクリップボードを共有させるために設定します。
※wsl環境でclip.exeが使えるのを確認してください!

使用するのは下記
https://github.com/tmux-plugins/tmux-yank

持ってくる

$ git clone https://github.com/tmux-plugins/tmux-yank  ~/.tmux/plugins/tpm

.tmux.confに設定

~/.tmux.conf
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
run '~/.tmux/plugins/tpm/tpm'

set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tmux-logging'

有効化

$ tmux source ~/.tmux.conf
& <preffix> + i
& <preffix> + u

vimクリップボード共有

下記を.vimrcに追加

if system('uname -a | grep -i microsoft') != ''
  augroup myYank
    autocmd!
    autocmd TextYankPost * :call system('clip.exe', @")
  augroup END
endif

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
9
Help us understand the problem. What are the problem?