WSL2でArchベースのManjaroを使う方法
Manjaroってなんjaro
関連記事:
WSL2でArchLinuxを使う
Windows11がリリースされ、
WSLではWSLg時代に突入。
Windows上でLinuxUIを使う機会が増えてきた。
この流れならLinux DesktopもWindows上で使うんじゃないかなと思い、
良い感じのものを探していた。
候補に挙がったのは以下の二つ
Pop!_OSを試してみたが、
いまいちうまくいかなかった。
ならば、Manjaroでどうかということでやってみることにした。
過去にArchLinuxをDocker経由でWSLに組み込んだが、
同じ系統なので多分いけるやろ。
たぶん公式のDockerイメージを使ってWSLに組み込んでみよう。
ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪
------------------- ↓ 本題はここから ↓-------------------
事前準備
Dockerが必要なので、
手っ取り早くDocker Desktopを入れておく
PowerShell上で以下のコマンドを実行
winget install Docker.DockerDesktop
DockerHubよりたぶん公式?のイメージをpullして起動
先にpullしておくとキャッシュしてくれるので。
docker pull manjarolinux/base:latest
docker run --rm -it -t manjarolinux/base:latest
Dockerfile
FROM manjarolinux/base:latest
ARG BUILDERNAME=builder
ARG USERNAME=dozo
RUN pacman-mirrors -c Japan,United_States\
&& pacman -Sy\
&& pacman -Syu --noconfirm --needed git sudo wget nano go base-devel
RUN usermod -l ${USERNAME} ${BUILDERNAME}\
&& groupmod -n ${USERNAME} ${BUILDERNAME}\
&& usermod -d /home/${USERNAME} -m ${USERNAME}
RUN usermod -aG wheel ${USERNAME}\
&& passwd -d ${USERNAME}\
&& printf "%%wheel ALL=(ALL) NOPASSWD:ALL\n" | tee -a /etc/sudoers.d/wheel\
&& printf "[user]\ndefault=${USERNAME}\n" | tee /etc/wsl.conf
RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG="ja_JP.UTF-8" \
LANGUAGE="ja_JP:ja" \
LC_ALL="ja_JP.UTF-8"
USER ${USERNAME}
RUN cd \
&& git clone https://aur.archlinux.org/yay-bin \
&& cd yay-bin\
&& makepkg -si --noconfirm\
&& cd .. \
&& rm -rf ./yay-bin
WORKDIR /home/${USERNAME}
令和4年9月20日: Dockerfileを修正
コメントよりご指摘がありDockerfileにbase-devel
が必要のようです。(未確認)
DockerHubを確認したところ、
同年8月31日の更新でmanjarolinux/baseイメージサイズの容量が削減があった模様。
dockerビルド開始
docker build . -t manjaro:1.0
コンテナをエクスポートしてWSLにインポート
docker psにてコンテナIDを取得
docker run -t manjaro:1.0 test
docker ps -a
CONTAINER ID IMAGE COMMAND
e4c8378ef5ae manjaro:1.0 "test"
PowerShell上でコンテナをディスクイメージに出力
インストール先を C:\Programs\Manjaro
とすると
docker export -o manjaro.tar e4c8378ef5ae
wsl --import Manjaro C:\Programs\Manjaro manjaro.tar --version 2
WSLログインしてみる
ではログインしてみよう
wsl -d manjaro
$ passwd
New password:
Retype new password:
passwd: password updated successfully
(・∀・)(・∀・)
------------------- ↓ 後書はここから ↓-------------------
以下の事項は前述のDockerfileには記載済み。
調べると後からわかることも多いので、
分かった時点で逐次更新する方向で。
pacmanのリポジトリを日本にする
Archの時でもあったが、
pacmanリポジトリ遅い問題はmanjaroに変えたところで存在する。
前回はリポジトリサイトにリクエストを投げていたが、
どうやら更新するコマンドがあるらしいので今回はそれを使っている
一応アメリカも追加。
RUN pacman-mirrors -c Japan,United_States\
&& pacman -Sy
yayをインストール
go版pacmanであるyayをインストールの記述を改めて載せておく
ArchLinuxのインストールの時はソースビルドだが、
バイナリがあるので今回はそちらを使っている。
RUN pacman -Syu --noconfirm --needed go
・・・
RUN cd \
&& git clone https://aur.archlinux.org/yay-bin \
&& cd yay-bin\
&& makepkg -si --noconfirm\
&& cd .. \
&& rm -rf ./yay-bin
Discussion
とても参考になる記事でした。ありがとうございます。
本日 2022年9月19日 時点のmanjarolinux/base:latestを使うとmakepkg の箇所で
ERROR: Cannot find the strip binary required for object file stripping.
が発生します。
下記の通り base-develの追加が必要なようです。
&& pacman -Syu --noconfirm --needed git sudo wget nano go base-devel
ご指摘ありがとうございます。
base-devel
を追記しました。