2021年11月7日日曜日

WSL2 で Debian 11 (Bullseye) を使う

/etc/apt/sources.list を修正して、 apt update, apt full-upgrade するのが楽かもしれない。

しかし、WSL2 のルートファイルシステムも Docker と同じ感じて作れるようなので、 Bullseye のルートファイルシステムを作って WSL2 へインポートしてみる。

前提

  • ゲスト OS: Ubuntu 20.04(WSL2)
  • Docker: Docker version 20.10.8, build 3967b7d

Debian 11 のルートファイルシステム作成

Docker コンテナ起動

debootstrap して作成したルートファイルシステムを Windows に持っていけるように、ボリュームをマウントしつつ Debian コンテナを起動。

PowerShell 上で、以下コマンドを実行。

docker run -it --rm -v "$(pwd):/work" --workdir "/work" -name debian debian:buster-slim

以降、起動した Debian コンテナ上でルートファイルシステムを作成していく。

必要パッケージのインストール

apt-get update
apt-get install -y debootstrap

debootstrap 実行

debootstrap で Debian 11 のルートファイルシステムを作成し、 tar で固める -> Windows へ渡すため、マウントしたフォルダへコピー。

cd
debootstrap bullseye ./bullseye http://deb.debian.org/debian
cd bullseye/
tar cfv ../debian-bullseye.tar .
cp ../debian-bullseye.tar /work

作成したら Debian コンテナはもう使わないので、停止。

WSL2 に Debian 11 をインポート

WSL2 ディストリビューションのディスク格納フォルダを作って、そこにインポートする。

PowerShell 上で以下コマンドを実行。

New-Item -ItemType Directory -p $HOME\wsl\debian\bullseye
wsl --import Debian-11 $HOME\wsl\debian\bullseye\ .\debian-bullseye.tar

Debian 11 の環境構築

Debian 11 のディストリビューション起動

PowerShell 上で以下コマンドを実行。

wsl -d Debian-11

Debian のアップグレードと必須パッケージインストール

アップグレードして sudo をインストールする。

起動した WSL 上で以下コマンドを実行。

apt-get update
apt-get upgrade -y
apt-get install -y sudo

一般ユーザー追加・設定

一般ユーザーを追加し、パスワード設定と sudo グループへの追加を行う。

useradd -m -s /bin/bash mikoto
passwd mikoto
gpasswd -a mikoto sudo

apt ソースリストの更新

適当に更新。

cat << EOF > /etc/apt/sources.list
deb http://ftp.jp.debian.org/debian/ bullseye main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ bullseye main contrib non-free

deb http://ftp.jp.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ bullseye-updates main contrib non-free

deb http://security.debian.org/ bullseye-security main
deb-src http://security.debian.org/ bullseye-security main
EOF

デフォルトユーザー設定

/etc/wsl.conf を更新し、WSL2 起動時に追加した一般ユーザーでログインする設定を行う。

cat << EOF > /etc/wsl.conf
[user]
default=mikoto
EOF

WSL2 再起動

これで、追加したユーザー(今回は mikoto) でログインした状態で Debian 11 が起動する。

Debian をログアウトして、 PowerShell 上で以下コマンドを実行する。

wsl -t Debian-11
wsl -d Debian-11

バージョン確認

/etc/os-release で、 Debian 11 がインストールされていることを確認する。

再起動後の Debian 上で、以下コマンドを実行・確認する。

mikoto@DESKTOP-CO13JB2:~$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

以上、あとはよしなに。

参考資料

更新履歴

日付 更新内容
2021/11/7 新規作成
2021/11/10 sources.list の内容が適当すぎたので修正。
あわせて参考資料を追加。

Ubuntu 20.04 on WSL2 で GUI アプリケーション(mikutter) を動かす

Twitter と Mastodon をひとまとめに確認したいと思って、 mikutter を導入した。

とりあえず動いているようなので、作業メモを残す。

※ ROM なので日本語入力環境構築までやっていない

前提

  • ホスト OS: Windows 11 Pro ビルド 22000.282
  • ゲスト OS: Ubuntu 20.04(WSL2)

WSL 環境構築

Windows 11にWSL 2、WSLgをインストール | AsTechLog を参考に実施。

GUI サポートを有効にするため、 WSL をアップデートする。

PowerShell を管理者権限で起動し、以下コマンドを実行。

wsl --update

Ubuntu 20.04 のインストール

管理者権限でない PowerShell を開いて、以下コマンドで Ubuntu 20.04 をインストール。

wsl --install -d Ubuntu-20.04

mikutter 環境構築・実行

Ubuntu のアップグレードと必要パッケージのインストール

Ubuntu 20.04 のインストールが完了したら、ベースシステムのアップグレードと、 mikutter の実行に必要なパッケージ一式をインストール。

sudo apt update
sudo apt upgrade -y
sudo apt install -y gcc make ruby libgtk2.0-dev libidn11-dev fonts-noto fonts-noto-cjk fonts-noto-mono ttf-ancient-fonts ruby-dev

mikutter インストール

本体と、 Twitter 用プラグインをインストールする。

ソースコード取得

mkdir ~/project
cd ~/project
git clone git://mikutter.hachune.net/mikutter.git

Twitter 用プラグインインストール

基本的に mikutter/twitter_bootstrap: The most popular Twitter client for mikutter plugin, teokure first projects on the Linuxとか desktop. の通りだが、今回は saved_search の挙動がよくわからなかったのでそれは削除している。また、インライン画像表示してくれる moguno/mikutter-subparts-image: mikutterで画像をインライン表示するプラグイン を追加した。

mkdir ~/.mikutter/plugin
cd ~/.mikutter/plugin
for i in api_request_file_cache direct_message followingcontrol home_timeline list list_for_profile list_settings mentions message_detail_view message_favorite message_retweet ratelimit rest streaming twitter twitter_activity twitter_datasource twitter_settings user_detail_view; do git clone https://github.com/mikutter/$i.git ~/.mikutter/plugin/$i; done
git clone https://github.com/moguno/mikutter-subparts-image.git

コンシューマーキーは昔勉強用に作ったものを流用。

必要な gem のインストール

bundle でインストール。

sudo gem install bundler
cd ~/project/mikutter
bundle config --local path vendor/bundle
bundle install

mikutter 起動

cd ~/project/mikutter
bundle exec ruby mikutter.rb

以下のような感じで GUI が表示される。

ショートカット作成

Windows 側でショートカットを作って、リンク先を wslg.exe -d Ubuntu-20.04 ~/mikutter.sh という感じで、 wslg から起動シェルスクリプトを叩くような形にする。

これで、ショートカットダブルクリックか、スタートメニューから実行できるようになる。

以上。

参考資料