DistroBox – Linux ターミナル内であらゆる Linux ディストリビューションを実行
Distrobox は、Docker またはPodman を使用してお気に入りの Linux ディストリビューション上でコンテナを作成および管理できる気の利いたツールです。起動されたコンテナはホスト システムと高度に統合され、これによりユーザーのホーム ディレクトリを外部ストレージ、USB デバイス、グラフィカル アプリケーションと共有できるようになります。
Distrobox はOCI イメージに基づいており、podman および OCI 標準コンテナ テクノロジの上に構築されたToolBox と同様の概念を実装しています。
このガイドでは、DistroBox をインストールして Linux ターミナル内で Linux ディストリビューションを実行する方法を説明します。このガイドではFedora 34 を実行しています。
前提条件
続行する前に、次のものが揃っていることを確認してください。
- 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
この例では、Debian 10 イメージから debian10-distrobox というコンテナを作成しています。
distrobox-create --name debian10-distrobox --image debian:10
このコマンドはDocker Hub からDebian 10 イメージを取得し、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-distrobox ディストリビューションボックスを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 ディストリビューションを試すこともできます。