你需要了解的 Bootc
文章介绍了 Bootc,一个基于容器构建 Linux Atomic 发行版的工具。Bootc 允许用户像构建应用程序一样构建操作系统,简化了系统配置和维护。文章强调了 Atomic 发行版的优势,例如 SteamOS 和 Fedora Silverblue,并推荐了 Universal Blue 项目。Bootc 通过 Docker 容器实现 GitOps,简化了操作系统配置,使其更易于管理和部署。
你需要了解的 Bootc
发布于 2025年1月3日,更新于 2025年1月5日
作者:3 min read
你有必要了解的 Bootc
目录:
你需要了解的 Bootc
冒着听起来像每个想让你点击“订阅”按钮的油管博主的风险,我仍然真心认为每个关心 Linux 的人都应该开始学习 Bootc。 展望 Linux 的未来,已经有很多关于像 SteamOS、Fedora Silverblue 或 NixOS 这样的不可变发行版将成为未来的讨论a lot of talk。
首先声明,传统的发行版不会消失。 它们有自己的位置,人们已经了解并喜欢它们。 企业依赖于它们。 然而,人们并没有使用它们,并且我们已经讨论“Linux 桌面元年”的时间比我的年龄还要长。 不可变发行版(或者现在喜欢称之为“Atomic”)也存在了一段时间,但在 Linux 桌面领域相对较新,并允许最终用户像使用电器一样使用 Linux 桌面。 他们可以打开它,并且知道它会正常启动,而无需担心过去用户必须担心的事情,例如驱动程序、内核模块或新的软件包导致系统崩溃——这些是 Linux 桌面过去的阴影。 如果你想看看可能实现什么,请看看 Steam Deck。
好了,你现在明白了——Atomic 发行版很酷。 更酷的是你可以制作自己的 Atomic 发行版。 隆重推出 Bootc! Bootc 允许你像制作应用程序一样制作操作系统,使用容器! 不可否认的是,现在大多数应用程序都是以 Docker 容器的形式交付的,而且大多数开发人员都有一些使用经验。 Bootc 将这种现有的开发人员经验直接转化为你的操作系统。 让我们看一个例子,看看它有多么容易:
1
2
3
```
| ```
FROM quay.io/fedora/fedora-bootc:41
COPY nginx.container /usr/share/containers/systemd
COPY nginx.conf /etc/nginx
```
---|---
`
简单,对吧? 这会将一个文件复制来运行一个 Nginx 容器,作为一个 [quadlet](https://sean.thrailkill.cloud/posts/you-need-to-know-about-bootc/<https:/mo8it.com/blog/quadlet/>),以及一个配置文件到 `/etc` 文件夹中。 这将 GitOps 带到我的操作系统。 有了它,无论我的机器是第一次启动还是第一百万次启动,它都将被配置为完全按照预期工作,而无需额外的工作或额外的配置。 不再需要使用 Ansible 或 Chef 等其他工具进行 Day 1/2 配置。 所有东西都在同一个代码仓库中。
但是,这只是一个简单的 Nginx 服务器示例,如果是像 Linux 桌面这样复杂的东西呢?它需要所有我想要的软件,例如 VSCode、OpenRazr 和 Nvidia 驱动程序。 看一看[Universal Blue](https://sean.thrailkill.cloud/posts/you-need-to-know-about-bootc/<https:/github.com/ublue-os>)。 这个项目是“我希望所有东西都能开箱即用,无需额外工作”的典范。 事实上,[The Verge](https://sean.thrailkill.cloud/posts/you-need-to-know-about-bootc/<https:/www.theverge.com/2024/12/30/24329005/bazzite-asus-rog-ally-x-steam-os-editorial>) 最近发表了一篇文章,称 Universal Blue 项目之一 Bazzite 提供了比 SteamOS 更好的体验。 高度赞扬! 他们在简化用户体验方面投入了大量精力,因此你想要的任何东西都只是一个简单的命令,而且它总是“Just Works”,这正是普通非技术用户想要的那种体验。 我可以给我的父母,并且知道他们可以访问他们需要的所有应用程序,并且不会弄坏系统。 Bootc 是我们将能够实现这一目标的方式。
Bootc 并不是唯一的解决方案,我只是触及了 Bootc 可以实现的表面。 还有更多部分,例如 ComposeFS 和 Systemd-sysext,但我认为 Bootc 是人们应该开始的地方。 如果你想看到更多示例,请随时查看 [我在 GitLab 上的代码仓库](https://sean.thrailkill.cloud/posts/you-need-to-know-about-bootc/<https:/gitlab.com/SNThrailkill/bootc>)。
[Bootc](https://sean.thrailkill.cloud/posts/you-need-to-know-about-bootc/</tags/bootc/>) [Atomic](https://sean.thrailkill.cloud/posts/you-need-to-know-about-bootc/</tags/atomic/>) [UBlue](https://sean.thrailkill.cloud/posts/you-need-to-know-about-bootc/</tags/ublue/>) [SteamOS](https://sean.thrailkill.cloud/posts/you-need-to-know-about-bootc/</tags/steamos/>)
本帖子在 [CC BY 4.0](https://sean.thrailkill.cloud/posts/you-need-to-know-about-bootc/<https:/creativecommons.org/licenses/by/4.0/>) 许可下发布。
分享 [ ](https://sean.thrailkill.cloud/posts/you-need-to-know-about-bootc/<https:/twitter.com/intent/tweet?text=You%20Need%20To%20Know%20About%20Bootc%20-%20Good%20Kid,%20Mad%20Lab&url=https%3A%2F%2Fsean.thrailkill.cloud%2Fposts%2Fyou-need-to-know-about-bootc%2F> "Twitter") [ ](https://sean.thrailkill.cloud/posts/you-need-to-know-about-bootc/<https:/www.facebook.com/sharer/sharer.php?title=You%20Need%20To%20Know%20About%20Bootc%20-%20Good%20Kid,%20Mad%20Lab&u=https%3A%2F%2Fsean.thrailkill.cloud%2Fposts%2Fyou-need-to-know-about-bootc%2F> "Facebook") [ ](https://sean.thrailkill.cloud/posts/you-need-to-know-about-bootc/<https:/t.me/share/url?url=https%3A%2F%2Fsean.thrailkill.cloud%2Fposts%2Fyou-need-to-know-about-bootc%2F&text=You%20Need%20To%20Know%20About%20Bootc%20-%20Good%20Kid,%20Mad%20Lab> "Telegram")