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。