Distroboxを使用して任意のLinuxディストリビューションから任意のプログラムを実行する方法

Distroboxは、コンピュータ内で任意のLinuxディストリビューションを起動できるシンプルなCLIツールです。VirtualBoxとは異なり、Distroboxは「オーバーレイ」を作成し、現在のシステムの上で異なるLinuxディストリビューションから任意のプログラムを実行できるようにします。ここでは、Distroboxの仕組みとそのインストールおよび使用方法を確認しましょう。
複数のLinuxディストリビューションを管理するためにDistroboxを使用する理由
Distroboxの最大のセールスポイントは、隔離されたインスタンスを使用するのではなく、ホストの上でゲストを実行することです。従来のVMと比較して、これによりホストのホームディレクトリ、外部デバイス、さらにはディスプレイサーバーにシームレスにアクセスできます。

ゲストとホストの間のこの密接な統合により、Distroboxを使用してユニークなことがいくつかできます。たとえば、UbuntuゲストにGUIアプリケーションをインストールし、そのショートカットをホストシステムのデスクトップにエクスポートできます。技術ライターとして、異なるアプリをテストおよび比較する際にこの機能が便利だと感じています。

最後に、Distroboxは非常に軽量です。これにより、複数のVMを実行するリソースがない低スペックのシステムに最適です。私の経験では、UbuntuとFedoraのゲストを約6時間実行しても、ホストの全体的なRAMの約900MBしか消費しませんでした。
Distroboxのインストールとテスト
Distroboxは、DockerやPodmanなどのコンテナデーモンを利用してディストリビューションを管理することによって機能します。そのため、Distroboxを展開する最初のステップは、マシンにDockerをインストールすることです。
Dockerデーモンがシステムで実行されていることを確認するには、そのバージョンを確認します:
docker --version現在のユーザーをdockerシステムグループに追加します:
sudo adduser $USER dockerシステムのパッケージマネージャを使用してDistroboxをダウンロードしてインストールします:
sudo apt install distrobox-hフラグを付けてDistroboxを実行し、正しくインストールされていることを確認します。

最初のオーバーレイディストリビューションの展開
Distroboxが稼働しているので、最初のLinuxディストリビューションオーバーレイをインストールできます。これには、開発者がデフォルトのインストールメディアとしてFedora 39のOCIイメージを提供しています。
Distroboxをcreateサブコマンドで実行し、新しいオーバーレイの名前とホスト名を指定します:
distrobox create --name YOUR-OVERLAY-NAME-HERE --hostname YOUR-CONTAINER-NAME-HERE「y」と入力し、Enterを押して新しいオーバーレイディストリビューションをプルして展開します。

注意: システムのハードウェアによっては、Distrobox内でゲストシステムを完全にインストールするのに5〜10分かかる場合があります。
完了したら、次のコマンドを実行して新しいオーバーレイディストリビューションを起動して読み込みます:
distrobox enter YOUR-OVERLAY-NAME-HEREターミナルプロンプトのホスト名を見て、オーバーレイシステム内にいることを確認します。
オーバーレイセッションを閉じるには、ゲストターミナルでCtrl + Dを押し、その後distrobox stopを実行し、オーバーレイの名前を続けて入力します。
余談ですが: DNFパッケージマネージャに関する包括的なガイドを見て、FedoraとRed Hat Enterprise Linuxの力を探求してください。
DistroboxでカスタムLinuxイメージを実行する
Fedora 39の他にも、Distrobox内で他のOCI互換のLinuxディストリビューションを実行することが可能で、たとえばArch Linuxがあります。
カスタムLinuxディストリビューションをインストールするには、createサブコマンドを-iフラグとともに実行し、OCI互換のイメージへのリンクを指定します。私の場合、オーバーレイのベースとしてQuay.ioのArch Linux Toolbxイメージを使用します:
distrobox create --name arch-linux --hostname mte-archlinux-container --image quay.io/toolbx/arch-toolbox:latest
注意: 互換性のあるディストリビューションとそのダウンロードリンクのリストは、開発者のGithubページで見つけることができます。
完了したら、オーバーレイを起動し、新しいArch Linuxシステムに入ります:
distrobox enter arch-linuxFedoraと同様に、ターミナルのホスト名を確認して、Arch Linuxを実行していることを確認します。

Distroboxでのパッケージのインストールと実行
Distroboxの密接な統合の利点の1つは、ゲストシステムがホストマシンにネイティブであるかのように振る舞うことです。そのため、Distroboxで任意のプログラムをインストールして実行することは、通常のLinuxインストールと似ています。
Distroboxゲストにパッケージをインストールするには、まずオーバーレイディストリビューション内にいることを確認します:
distrobox enter arch-linux注意: システム上の利用可能なオーバーレイをリストするには、distrobox lsを実行します。
ゲストディストリビューションのパッケージマネージャを使用して、必要なプログラムをインストールします。この場合、sudo pacman -S neofetchを実行して、Arch Linuxゲストシステムにneofetchをインストールします。

オーバーレイ内で1回、外で1回、新しいパッケージをテストします。

Distroboxオーバーレイの外からプログラムをインストールすることもできます。そのためには、enterサブコマンドの後に--オペレーターを使用します:
distrobox enter --name arch-linux -- sudo pacman -S neofetchこの機能は、ゲストシステムの外でプログラムを実行することにも拡張されます。たとえば、次のコマンドは、Arch Linuxゲストでneofetchを実行し、その出力をUbuntuホストシステムに表示します:
distrobox enter --name arch-linux -- neofetch
知っておくと良いこと: 異なるパッケージマネージャを使用していますか? 異なるLinuxディストリビューションのための便利なパッケージマネージャーチートシートをチェックしてください。
オーバーレイプログラムをホストシステムにエクスポートする
--オペレーターは簡単な一時的なタスクに最適ですが、Distrobox「プロファイル」を作成して、ホストLinuxマシンから直接ゲストプログラムを実行することも可能です。これは、Distroboxゲストシステム内のプログラムに常にアクセスしたい場合に便利です。
ホストマシンにエクスポートするには、まずプログラムをインストールしたシステムに入ります:
distrobox enter arch-linuxコンテナ内からアプリケーションが正常に動作していることを確認します。私の場合、Arch Linux内のEmacsインストールをエクスポートしたいと思います。

distrobox-exportを--appフラグとともに実行し、エクスポートしたいプログラムの名前を指定します:
distrobox-export --app emacsホストシステムのアプリケーションランチャーに移動し、プログラムアイコンをクリックして、新しくエクスポートしたアプリをテストします。

Distroboxを使用してゲストOSをインストールおよび実行することは、Dockerとコンテナ技術でできることの一例に過ぎません。このプログラムがどのように機能するかを深く掘り下げるには、Dockerコンテナの実行と管理に関する入門書をチェックしてください。
画像クレジット:Kari Shea via Unsplash。すべての変更とスクリーンショットはRamces Redによるものです。