Fedora Toolbx (toolbox) は、開発者のためにユーザーアカウント単位でコンテナ環境を提供するコマンドラインツールです。コマンドは toolbox ですが、toolbox は一般名称だからでしょうか、ソフトウェア名は Toolbx になっているようです。
使用した OS は以下の通りです。
Fedora Silverblue 40 (beta) | x86_64 |
Fedora Toolbx は Fedora Linus Workstation および Fedora Silverblue をはじめとする Fedora Atomic Desktops で利用できますが、他の Fedora エディションでも toolbox をインストールすれば使用できるとのことです。
Toolbx 〜 使い捨てのプライベートコンテナ 〜
勝手に「使い捨てのプライベートコンテナ」と呼びましたが、Toolbx はコンテナに関連する領域を、アカウント内の $HOME/.local/share/containers/ に確保します。Toolbx には、開発環境を準備するための最低限のコマンドしかないので、Docker や Podman を使ったことがあれば、すぐに Toolbx を利用することができるでしょう。
toolbox create でコンテナを作成すると、デフォルトで、ホストと同じバージョンの Fedora の dnf コマンドが利用できる通常イメージのコンテナがダウンロードされます。必要に応じて dnf コマンドで必要なパッケージを追加してお好みの開発環境を準備することができます。GUI アプリもコンテナ内から起動できます。
アカウント領域はコンテナ内で丸ごと共有されていますので、コンテナから抜けても開発したファイルにそのままアクセスできます。そのため、開発したアプリを Flatpak 化することも容易です。
開発が終わってコンテナ領域が不要になれば、簡単に削除できます。
Toolbx コンテナの作成
既に述べたように、端末エミュレータ上で toolbox create コマンドを実行すると、デフォルトで、ホストと同じバージョンの Fedora の dnf コマンドが利用できるイメージがダウンロードされて、利用可能なコンテナがひとつ作成されます。
bitwalk@fedora:~$ toolbox create Image required to create toolbox container. Download registry.fedoraproject.org/fedora-toolbox:40 (372.9MB)? [y/N]: y Created container: fedora-toolbox-40 Enter with: toolbox enter bitwalk@fedora:~$
toolbox list コマンドを実行すると、ダウンロードされたイメージと利用可能なコンテナの一覧を確認できます。
bitwalk@fedora:~$ toolbox list
IMAGE ID IMAGE NAME CREATED
95a10f3648cb registry.fedoraproject.org/fedora-toolbox:40 17 hours ago
CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME
ef0b3ea93551 fedora-toolbox-40 2 minutes ago created registry.fedoraproject.org/fedora-toolbox:40
bitwalk@fedora:~$
toolbox enter コマンドでコンテナ内に入ります。
[bitwalk@localhost ~]$ toolbox enter Welcome to the Toolbox; a container where you can install and run all your tools. - Use DNF in the usual manner to install command line tools. - To create a new tools container, run 'toolbox create'. For more information, see the documentation. ⬢[bitwalk@toolbox ~]$ ls ダウンロード デスクトップ ビデオ 画像 テンプレート ドキュメント 音楽 公開 ⬢[bitwalk@toolbox ~]$
dnf コマンドで最新の状態にアップデートできます。sudo コマンドはパスワードがありません。
⬢[bitwalk@toolbox ~]$ sudo dnf update Fedora 40 - x86_64 762 kB/s | 34 MB 00:45 Fedora 40 openh264 (From Cisco) - x86_64 90 B/s | 1.8 kB 00:19 Fedora 40 - x86_64 - Updates 8.4 B/s | 134 B 00:15 Fedora 40 - x86_64 - Test Updates 5.7 MB/s | 4.3 MB 00:00 依存関係が解決しました。 ================================================================================ パッケージ Arch バージョン リポジトリー サイズ ================================================================================ アップグレード: ... (途中省略) ... Complete! ⬢[bitwalk@toolbox ~]$
Toolbx で利用できる領域は、ホストの /var/home/アカウント が利用できる領域になります。
⬢[bitwalk@toolbox ~]$ df -hT ファイルシス タイプ サイズ 使用 残り 使用% マウント位置 devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev tmpfs tmpfs 2.0G 84K 2.0G 1% /dev/shm selinuxfs selinuxfs 39G 9.3G 30G 25% /sys/fs/selinux tmpfs tmpfs 391M 3.8M 387M 1% /etc/hostname tmpfs tmpfs 782M 1.5M 781M 1% /run/media /dev/vda3 btrfs 39G 9.3G 30G 25% /run/host /dev/vda3 btrfs 39G 9.3G 30G 25% /run/host/var /dev/vda3 btrfs 39G 9.3G 30G 25% /run/host/var/home tmpfs tmpfs 2.0G 130M 1.8G 7% /tmp /dev/vda2 ext4 974M 295M 612M 33% /run/host/boot overlay overlay 39G 9.3G 30G 25% / ⬢[bitwalk@toolbox ~]$
Toolbx コンテナ内のアプリを実行
例として、あらかじめホストでダウンロードしておいた Google Chrome をコンテナ内でインストールしてみます。
⬢[bitwalk@toolbox ダウンロード]$ ls google-chrome-stable_current_x86_64.rpm ⬢[bitwalk@toolbox ダウンロード]$ sudo dnf install ./google-chrome-stable_current_x86_64.rpm メタデータの期限切れの最終確認: 0:05:21 前の 2024年03月31日 12時46分02秒 に実施しました。 依存関係が解決しました。 ================================================================================ パッケージ Arch バージョン リポジトリー サイズ ================================================================================ インストール: google-chrome-stable x86_64 123.0.6312.86-1 @commandline 104 M 依存関係のインストール: ModemManager-glib x86_64 1.22.0-3.fc40 fedora 322 k NetworkManager-libnm x86_64 1:1.46.0-2.fc40 updates-testing 1.8 M abattis-cantarell-vf-fonts noarch 0.301-12.fc40 fedora 120 k ... (途中省略) ... 完了しました! ⬢[bitwalk@toolbox ダウンロード]$
さらに、日本語フォントをインストールしておきます。
⬢[bitwalk@toolbox ダウンロード]$ sudo dnf install google-noto-sans-cjk-fonts google-noto-sans-cjk-vf-fonts google-noto-sans-mono-cjk-vf-fonts google-noto-serif-cjk-fonts google-noto-serif-cjk-vf-fonts
...
(途中省略)
...
このまま、コンテナ内で google-chrome とタイプすれば Google Chrome が起動しますが、ここでは敢えてコンテナから抜け、ホストから実行してみます。コンテナから抜けるには exit とタイプします。
⬢[bitwalk@toolbox ダウンロード]$ exit ログアウト bitwalk@fedora:~$
コンテナから exit コマンドで抜けても、コンテナは実行状態のままです。
[bitwalk@localhost ~]$ toolbox list IMAGE ID IMAGE NAME CREATED 95a10f3648cb registry.fedoraproject.org/fedora-toolbox:40 17 hours ago CONTAINER ID CONTAINER NAME CREATED STATUS IMAGE NAME ef0b3ea93551 fedora-toolbox-40 23 minutes ago running registry.fedoraproject.org/fedora-toolbox:40 bitwalk@fedora:~$
ホスト側から(デフォルトのコンテナに対して)コマンド google-chrome を実行します。
bitwalk@fedora:~$ toolbox run google-chrome
MESA: error: ZINK: failed to choose pdev
glx: failed to create drisw screen
failed to load driver: zink
[4667:4667:0331/132201.642070:ERROR:viz_main_impl.cc(196)] Exiting GPU process d
ue to errors during initialization
[4601:4601:0331/132201.759600:ERROR:object_proxy.cc(576)] Failed to call method:org.freedesktop.ScreenSaver.GetActive: object_path= /org/freedesktop/ScreenSaver: org.freedesktop.DBus.Error.NotSupported: This method is not part of the idle inhibition specification: https://specifications.freedesktop.org/idle-inhibit-spec/latest/
なにやらエラーが出ていますが、とりあえず起動します。
Toolbx コマンド概略
toolbox コマンド概略を以下にまとめました。覚えるべきサブコマンドは 6 種類です。
コマンド例 | 説 明 |
---|---|
toolbox create [--container <name>] | |
ツールボックスコンテナを作成します。デフォルトでは、ホストのバージョンと同じ Fedora のイメージをダウンロードします。オプションなしで使用すると、toolbox create は自動的に作成するコンテナに名前を付けます。追加のツールボックスを作成するには --container <name> オプションを使用します。 | |
toolbox enter [--container <name>] | |
toolbox のコンテナを対話的に使用するために入ります。オプションを指定せずに使用すると、toolbox enter はデフォルトの toolbox のコンテナを開きます。複数のツールボックスがある場合は、--container <name> オプションを使って利用するツールボックスを指定します。 | |
toolbox run [--container <name>] <cmd> <arg …> | |
toolbox のコンテナに入らずにコマンドを実行します。オプションなしで使用すると、toolbox run は toolbox のデフォルトのコンテナでコマンドを実行します。複数のツールボックスがある場合は、--container <name> オプションを使用して使用するツールボックスを指定します。 | |
toolbox list | |
ローカルにある toolbox のイメージとコンテナの一覧を表示します。 | |
toolbox rm [--force] <name> | |
toolbox のコンテナを削除します。--force オプションを付けると、実行中であってもコンテナを削除します。 | |
toolbox rmi [--force] <name> | |
toolbox のイメージを削除します。 | |
toolbox --help | |
使用可能なコマンドを一覧表示します。 |
参考サイト
にほんブログ村
0 件のコメント:
コメントを投稿