とある環境……というか、SteamDeckで簡易端末をつくる必要がでてきました。
SteamDeckはArchLinuxベースのようで、色々と使い勝手が異なります。
こいつに使い慣れたUbuntu系の実装を移植しようと調べたところ、先駆者がdistroboxなるツールを使っていたのでメモ
実際のところ
公式の説明によると
Provide a mutable environment on an immutable OS, like ChromeOS, Endless OS, Fedora Silverblue, OpenSUSE Aeon/Kalpa, Vanilla OS, or SteamOS3
ということで、環境を弄りにくい環境でも色々できるようになる様子。
今回のようなケースでは大活躍というわけですね。
導入
まず"~/.distroboxrc"というファイルを用意します
こいつはコンテナ作成時に読み出させるファイルで、適切に設定しておかないとdistroboxの強みであるGUIツールの表示や音声・動画のやりとりが上手くいかないです
echo "xhost +si:localuser:\$USER" >> ~/.distroboxrc echo "export PIPEWIRE_RUNTIME_DIR=/dev/null" >> ~/.distroboxrc
環境導入はaptやpacmanではなく、curlかwgetで直接打ち込む形式
導入もとても軽い
$ curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh Checking dependencies... Downloading... Unpacking... Installation successful! Shell scripts are located in /usr/local/bin Manpages are located in /usr/local/share/man/man1
この状態で、コンテナの導入を開始
Dockerよろしく、つらつらとダウンロードが始まります
本体と同様、こちらもDockerなどと比べて恐ろしく早い!
$ distrobox create -i ubuntu:22.04 localuser:ubuntu being added to access control list Image ubuntu:22.04 not found. Do you want to pull the image now? [Y/n]: y 22.04: Pulling from library/ubuntu 9cb31e2e37ea: Pull complete Digest: sha256:ed1544e454989078f5dec1bfdabd8c5cc9c48e0705d07b678ab6ae3fb61952d2 Status: Downloaded newer image for ubuntu:22.04 docker.io/library/ubuntu:22.04 Creating 'ubuntu-22-04' using image ubuntu:22.04 [ OK ] Distrobox 'ubuntu-22-04' successfully created. To enter, run: distrobox enter ubuntu-22-04 localuser:ubuntu being added to access control list Successfully copied 2.05kB to /tmp/ubuntu-22-04.os-release