Fedora Silverblue的Toolbox提供容器化开发环境。保持宿主系统整洁,隔离依赖,支持多发行版,主要用于命令行。用create/enter/run管理,注意安全。
译自:Fedora Silverblue Has a Handy Tool To Help Simplify Development
作者:Jack Wallen
如果你正在寻找一个用于开发目的的新 Linux 发行版,你应该考虑 Fedora Silverblue。为什么?简单来说,Toolbox。
Toolbox 是 Fedora Silverblue 附带的一个工具,允许你创建 容器化环境,用于日常软件开发和调试。得益于 Fedora Silverblue 的不可变特性(操作系统核心以只读方式挂载),Toolbox 提供了一个熟悉的基于软件包的环境,你可以在其中安装和使用工具和库。
Toolbox 的优势
使用 Toolbox 的优势包括:
- 保持宿主操作系统干净稳定。
- 避免安装开发工具和软件包后可能出现的混乱。
- 访问不同的发行版。
- 更好地隔离和组织不同项目所需的依赖项。
- 安全的实验方式,因为你可以随意创建和销毁容器。
尽管 Toolbox 容器是隔离的,但它们仍然可以访问宿主系统,所以不要认为开发或运行你平时不会在宿主上运行的软件是安全的。你仍然需要谨慎使用。
请记住,Toolbox 只创建命令行环境,所以如果你正在开发 GUI 应用,这并非你所需的工具。如果你想构建 Web 应用、服务或其他命令行友好的工具,这个应用会是一个真正的便利。
而且由于它预装在 Fedora Silverblue 上,一旦你安装了操作系统,就可以立即开始使用。
容器化环境
请记住,Toolbox 环境可以无缝访问用户的主目录、Wayland 和 X11 套接字、网络、可移动设备、systemd 日志、SSH 代理、D-Bus、ulimits、/dev、udev 数据库等等。
由于 Fedora Silverblue(以及其他基于 OStree 的发行版)不鼓励在宿主上安装软件,而是将软件作为(或在)容器中安装,因此通过标准方法设置开发环境或故障排除可能会很困难。
因此,便有了 Toolbox。
但是如何使用 Toolbox 呢?
很高兴你问了。
让我们深入了解。
使用 Toolbox 的第一步
当你创建一个新的 Toolbox 环境时,每个实例都包含:
- 你的用户名和权限。
- 访问你的主目录、系统和会话 D-Bus、系统日志和 Kerberos。
- 常用命令行工具,例如你的包管理器。
Toolbox(也称为 Toolbx)创建可变容器,你可以在其中安装所有你喜欢的开发/故障排除工具、编辑器、SDK 等。
请记住,Toolbox 不做任何安全承诺,所以请谨慎使用。
你必须做的第一件事是下载一个 OCI 镜像并创建一个 toolbx 容器,这可以通过以下命令完成:
toolbox create
系统会要求你确认此过程,输入 Y 继续。这将从 Fedoraproject 注册表拉取。根据你的网络连接情况,这可能需要几分钟。
注册表拉取完成后,你就可以使用以下命令进入新的 Toolbox 容器:
toolbox enter
你可以使用以下命令离开容器:
exit
默认情况下,create 命令会拉取并创建一个 Fedora 容器。如果你想拉取不同的发行版(例如 Ubuntu 24.04),可以使用:
toolbox create --distro utuntu --release 24.04
当拉取非默认发行版时,你必须告诉 Toolbox 你想使用哪个版本;否则,它会报错。
同样,如果你创建了不同的容器(非默认容器),你必须告知 Toolbox 你想进入哪个容器,像这样:
toolbox enter ubuntu-toolbox-24.04
此时,你已可以访问所有必要的工具来安装你开始开发所需的任何东西。例如,如果你在 Ubuntu 容器中需要 Node.js,可以输入以下命令:
sudo apt-get update
sudo apt-get install nodejs -y
你可以在容器中安装任何你需要的工具。
再次强调,使用 exit 命令离开容器。
你可以使用以下命令列出所有 Toolbox 容器:
toolbox list
你应该看到所有容器当前都在运行。
将应用程序安装到 Toolbox 容器中
你也可以在不进入 Toolbox 容器的情况下,将应用程序安装到其中。假设你想在不先进入容器的情况下升级当前的 Fedora 容器。为此,你可以运行以下命令:
toolbox run sudo dnf update
或者你可以安装 NGINX:
toolbox run sudo dnf install nginx -y
如果你想在不同的容器(例如 ubuntu-toolbox-24.04)上执行此操作,命令将是:
toolbox run -c ubuntu-toolbox-24.04 sudo apt-get install nginx
如果你想移除一个 Toolbox 容器,命令是:
toolbox rm NAME
其中 NAME 是容器的名称。例如,你可以使用以下命令移除 ubuntu-toolbox-24.04 容器:
toolbox rm ubuntu-toolbox-24.04
如果你想移除所有容器,你必须首先停止它们。奇怪的是,Toolbox 没有 stop 命令,所以你必须使用 Podman 来停止它们,如下所示:
podman stop fedora-toolbox-43
一旦你停止了容器,你就可以用以下命令移除它:
toolbox rm fedora-toolbox-43
我的朋友们,这就是你如何使用 Toolbox 创建用于开发目的的容器化环境。这个工具非常方便。试一试,看看它是否会成为你的首选工具。