DistroBox –Linuxターミナル内で任意のLinuxディストリビューションを実行する


Distroboxは、DockerまたはPodmanのいずれかを使用して、お気に入りのLinuxディストリビューションでコンテナーを作成および管理できる優れたツールです。起動されたコンテナはホストシステムと高度に統合され、これにより、外部ストレージ、USBデバイス、およびグラフィカルアプリケーションとともにユーザーのHOMEディレクトリを共有できます。

DistroboxはOCIイメージに基づいており、podmanおよびOCI標準コンテナーテクノロジーの上に構築されたToolBoxと同様の概念を実装しています。

このガイドでは、DistroBoxをインストールしてLinuxターミナル内でLinuxディストリビューションを実行する方法を示します。このガイドでは、Fedora34を実行しています。

先に進む前に、次のものがあることを確認してください。

  • 最小podmanバージョン:2.1.0またはdockerバージョン:18.06.1。

ステップ1:LinuxシステムにDistroBoxをインストールする

DistroBoxのインストールは簡単です。インストールスクリプトをダウンロードして実行する次のcurlコマンドを実行するだけです。

$ curl https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh

Fedoraでは、DistroBoxはCoprリポジトリから入手できます。したがって、FedoraでCoprリポジトリを有効にします。

$ sudo dnf copr enable alciregi/distrobox

Coprリポジトリが追加されたら、DNFパッケージマネージャーを使用してDistroboxをインストールします。

$ sudo dnf install distrobox

ステップ2:画像からコンテナを作成する

Distroboxがインストールされたら、コンテナーの作成と実行を開始できます。イメージをプルしてイメージからコンテナーを実行するには、次のようにdistrobox-createコマンドを使用します。

$ distrobox-create --name container-name --image os-image:version

この例では、Debian10イメージからdebian10-distroboxというコンテナを作成しています。

$ distrobox-create --name debian10-distrobox --image debian:10

このコマンドは、DockerHubからDebian10イメージをプルし、debian10-distroboxというコンテナーを作成します。

Distroboxコンテナでサポートされているオペレーティングシステムとバージョンの完全なリストを取得するには、Distroboxプロジェクトページにアクセスしてください。

Distroboxで作成されたコンテナを一覧表示するには、次のコマンドを実行します。

$ distrobox-list

ステップ3:Distroboxコンテナへのアクセス

新しく作成されたLinuxコンテナーのシェルにアクセスするには、次のようにdistrobox-enterコマンドを使用します。

$ distrobox-enter --name container-name

たとえば、コンテナにアクセスするには、次のコマンドを実行します。

$ distrobox-enter --name debian10-distrobox

ここから、コンテナ内でコマンドを実行できます。たとえば、次のコマンドはOSのバージョンをチェックします。

$ cat /etc/os-release

アプリケーションをインストールすることもできます。ここでは、Neofetchユーティリティツールをインストールしています。

$ sudo apt install neofetch

Neofetchをインストールしたら、次のように起動します。

ステップ4:Distroboxコンテナでコマンドを実行する

示されている構文を使用してシェルにアクセスする代わりに、Distroboxコンテナでコマンドを直接実行できます。

$ distrobox-enter --name container-name  -- command

次のコマンドでは、コンテナの稼働時間を表示し、パッケージリストを更新しています。

$ distrobox-enter --name debian10-distrobox -- uptime
$ distrobox-enter --name debian10-distrobox -- sudo apt update

ステップ5:コンテナからホストへのアプリケーションのエクスポート

Distroboxコンテナー内に、ホストシステムに移植するアプリケーションがある場合は、distrobox-exportコマンドを使用して移植できます。まず、コンテナのシェルにアクセスします。

$ distrobox-enter --name container-name

ここでは、スクリーンショットを撮るための無料のオープンソースクロスプラットフォームツールであるFlameshotをインストールします。

$ sudo apt install flameshot

アプリケーションをFedoraにエクスポートするには、次のコマンドを実行します。

$ distrobox-export --app flameshot

コンテナを終了するには、次のコマンドを実行します。

$ logout

ここで、Fedoraホストシステムに戻ります。アプリケーションの存在を確認するために、次のように[アプリケーション]メニューを使用してアプリケーションの検索を実行します。

ステップ6:Distroboxコンテナのクローンを作成する

場合によっては、コンテナイメージの複製またはクローンを作成する必要があります。これを実現するには、まず、podmanコマンドを使用して実行中のコンテナーを停止します

$ podman stop container_ID

コンテナIDを取得するには、podman psコマンドを実行して、現在実行中のコンテナを一覧表示します。

$ podman ps

コンテナが停止したら、次のように複製を作成できます。この例では、debian10-distroboxdistroboxをdebian-10-cloneというクローンに複製しています。

$ distrobox-create --name debian-10-clone --clone debian10-distrobox

クローンが作成されたことを確認するために、もう一度、図のようにDistroboxコンテナーをリストします。

$ distrobox-list

ステップ7:FedoraでのDistroboxの管理

この最後のセクションでは、podmanを使用してコンテナを管理する方法について簡単に説明します。

すべてのアクティブなコンテナを一覧表示するには、次のコマンドを実行します。

$ podman ps

アクティブなコンテナと終了したコンテナの両方を実行しているすべてのコンテナを一覧表示するには、次のコマンドを実行します。

$ podman ps -a

コンテナを停止するには、次のコマンドを実行します。

$ podman stop container_ID

コンテナを削除するには、必ず最初に停止してから削除してください。

$ podman stop container_ID
$ podman rm  container_ID

Distroboxは、ソフトウェアアプリケーションとの下位互換性と下位互換性を可能にし、sudo特権を必要とせずにコンテナの形式でさまざまなLinuxディストリビューションを試すことができる便利なユーティリティです。