「ディストロ自体をパッケージのように扱い、再起動なしでArchもFedoraも同居させる」——XDA Developersは、そんなことを可能にするLinuxツール「Distrobox」を取り上げ、ホストOSを汚さず複数のディストロを試せる利便性を紹介しています。たとえばUbuntuを使いながら、Arch User Repository(AUR)にしかないツールをArchコンテナ経由でそのまま使う、といった運用が現実的になります。

ディストロを丸ごとコンテナで動かす仕組み

Distroboxは、DockerやPodmanといったコンテナマネージャーをバックエンドとして利用し、ほぼあらゆるLinuxディストロをコンテナ形式で動かせるツールです。コンテナはホストマシンとカーネルを共有するため、フルVMよりもオーバーヘッドが少なく、ネイティブに近いパフォーマンスを得られます。

メインで使っているディストロを犠牲にすることなく、別のディストロを試したり、再起動なしに切り替えたりできるのが大きな利点です。たとえばUbuntuユーザーがAURにしかないパッケージを使いたい場合、DistroboxでArchを立ち上げ、その中のパッケージマネージャーから目的のツールをインストールできます。FedoraやLinux Mintなど、ほぼ思いつくディストロに対して同じことが可能だと紹介されています。

ターミナルアプリだけでなくGUIアプリにも対応します。ただし、コンテナ化されたディストロにはデスクトップ環境は提供されないため、あくまで「ツール群を借りる」用途と考えるのが適切です。

開発者の本命:プロジェクトごとにPythonやNode.jsを切り分ける

Distroboxの真価は、特定バージョンのパッケージを必要とする開発者にとっての利便性にあります。

  • 同じディストロのコンテナを複数作成し、それぞれ独立した環境として運用できる
  • プロジェクトごとに異なるPythonやNode.jsのバージョンを使い分けられる
  • npm(Node Package Manager)のように「Node.jsのバージョン管理ツール」を別途用意せずに、あらゆるパッケージで同様の分離が可能

新バージョンが破壊的変更を含むことは珍しくないため、プロジェクトごとに環境を切り分けたいニーズは強くあります。Distroboxはコンテナベースであるため、フルVMよりもパフォーマンスへの影響が小さく、開発ツールを快適に動かせます。

ターミナルが苦手な人にはDistroShelf

Distroboxは基本的にターミナルベースのツールですが、GUIフロントエンドとして「DistroShelf」が用意されています。XDAの記事では、ターミナルでもDistroboxは問題なく扱えるとしつつ、「ときにはUIがあると見やすくて便利」と述べられており、DistroShelfがその役割を果たすツールとして紹介されています。

DistroShelfで可能な操作は以下の通りです。

機能内容
コンテナ作成任意のイメージを選んで新規Distroboxコンテナを作成
カスタムホームディレクトリコンテナ用のホーム位置を指定可能
権限・機能設定Nvidia GPUサポートなどを有効化
パッケージ確認インストール済みパッケージを一覧表示
ランチャー連携ホストOSのランチャーにアプリを追加
クローン同じツール構成の別インスタンスを複製

ターミナル操作に抵抗がある人には、まずDistroShelf経由でDistroboxを触ってみるのが良いと紹介されています。

まとめ:気軽に試せる「ディストロのパッケージ化」

Distroboxは、ホストOSを汚さず、複数のLinux環境をほぼ性能劣化なしに同居させられるツールです。ターミナル派にもGUI派にも選択肢があり、開発者にとっては環境分離の決定打になり得ます。複数のLinux環境を気軽に試したい人にとっては、まずインストールしてみる価値のあるツールです。

Q&A

Q. 複数バージョンのPythonやNode.jsを同居させるにはどう使いますか? プロジェクトごとに別々のDistroboxコンテナを作成し、それぞれのコンテナ内で必要なバージョンのPythonやNode.jsをインストールすれば、互いに干渉せず独立した環境として運用できます。同じディストロでも複数のコンテナを作れるため、用途別の使い分けが容易です。

Q. コンテナ化したディストロのデスクトップ環境は使えますか? 使えません。Distroboxではコンテナ化されたディストロにデスクトップ環境は提供されず、利用できるのはツール群(ターミナルアプリ・GUIアプリ)に限られます。

Q. GUIで操作する方法はありますか? DistroShelfというフロントエンドが用意されており、コンテナ作成・パッケージ確認・ホストランチャーへの追加・クローンなどをGUIで行えます。

出典