Framework 13 AMD 上的 Guix
Guix 是一个 GNU 项目,提供类似 Nix 的函数式包管理;它因声明式配置、对软件自由的强烈重视,以及既可作为完整 Linux 发行版又可作为其他发行版上的包管理器而受到赞赏。评论者在肯定这些优势的同时,也权衡了现实中的取舍,例如对专有固件、驱动和应用程序的官方支持有限——这通常要通过像“nonguix”这样的非官方渠道来弥补——并指出这种意识形态立场会使 Framework 13 这类现代笔记本上的硬件支持变得更复杂。讨论还涉及更广泛的 Linux 可用性问题,包括 Wayland 的分数缩放表现、滚动发布带来的安全更新,以及 Guix 与 NixOS 在稳定性、软件包可用性和实际开发工作流方面的比较。
Guix vs Nix
- Guix 受到 Nix 的启发,但它是函数式包管理的一个独立实现。
- 关键差异:
- 使用 Guile Scheme 而不是 Nix 语言;Scheme 用于包定义、构建脚本、initrd 以及服务管理器(GNU Shepherd)。
- 更强调可复现性、“从源代码一路向下”引导,以及供应链安全。
- Guix System 面向 GNU/Linux(以及 Hurd),不同于支持 macOS 和其他 Unix 的 Nix。
- Guix 复用了 Nix daemon(分支出来的 C++),但大多数 Guix 用法都基于 Guile;学会 Nix 并不能带来太多迁移收益。
自由软件立场与 Nonguix
- Guix 核心频道只提供自由软件;Chrome、Nvidia 驱动、固件和微码等非自由组件会被排除在外。
- Nonguix 和其他频道提供非自由或“受污染”的软件包(完整 Linux 内核、固件、CUDA、Steam 等)。
- Nonguix 明确要求用户不要在官方 Guix 渠道宣传它,以尊重 Guix 的反非自由政策。
- 一些人认为这过于意识形态化,妨碍“把事情做成”;另一些人则认为这在保持清晰原则的同时,仍允许用户选择加入非自由频道。
- 关于固件 blob 和 CPU 微码的张力:
- 批评者:缺少 blob 会导致硬件失效(wifi、GPU、Ethernet),并且安全问题得不到修补。
- 支持者:必须划清界限,才能保持真正自由的系统,并避免进一步依赖不透明固件。
Wayland、GNOME、KDE 与分数缩放
- 很多评论讨论 Wayland 下模糊的分数缩放,尤其是在 GNOME 与 XWayland 应用场景中。
- 说法互相矛盾:
- 有人说 Wayland 缩放非常好,而 Xorg 更差;也有人有相反体验。
- 据称 KDE/Hyprland 对分数缩放和 XWayland 的处理更好(例如不缩放的选项、Qt6/Chromium 支持)。
- 技术争论:
- 对位图进行分数缩放不可避免会引入模糊;基于矢量的渲染则可以保持清晰。
- 新的 Wayland 协议(fractional scale)在应用支持时可以避免由合成器侧进行缩放,但支持还不完整。
- 具体痛点:像 Framework 13 或 ThinkPad 这类具有“非 1x/2x” DPI 的笔记本通常需要 1.5× 缩放,从而暴露出这些问题。
Guix 的用途、生态与稳定性
- Guix 可以是:
- 一个 Linux 发行版(类似 NixOS)。
- 另一个发行版之上的包管理器。
- 用于可复现开发环境的工具(
guix shell)。 - 用于构建虚拟机/容器的方式(
guix pack、声明式 OS 配置、guix deploy)。
- 软件包覆盖范围:
- 核心频道比 Nixpkgs 小,但在单独的频道中有许多额外内容(CRAN、HPC、nonfree 等)。
- Guix 和 Nix 都提供运行对方 daemon 的服务。
- 对稳定性的看法:
- 支持者认为事务式升级、回滚和声明式配置让 Guix 比传统发行版更稳定。
- 怀疑者则提到一些粗糙边角、软件包更新缺失或延迟,以及把 Guix 与原生包管理器混用时产生的困惑。
- 滚动发布的性质意味着更新频繁;这适合快速演进的软件,但不太适合保守的服务器部署。
Framework 13、硬件支持与固件
- 在 Framework 笔记本上(尤其是 AMD 机型),Guix 可以运行得很好,但:
- 安装介质可能缺少以太网、wifi 和某些 GPU 所需的固件,导致在加入 nonguix 之前出现网络或驱动问题。
- 更广泛的 Linux-libre 抱怨:
- 一些去 blob 的决定甚至移除了驱动中的 GPL 二进制数组,使得寻找兼容的 wifi 硬件变得困难。
- 多位用户希望 Framework 能提供“没有例外”的 Linux 支持,甚至可能预装 Linux;而目前官方重点是 Ubuntu LTS 和 Fedora。