这个项目能做什么
Kyanite是Fedora Kinoite的一个衍生版本,设计为日常使用的桌面系统,以不可变的bootc(可启动容器)镜像形式分发。它搭载KDE Plasma,移除了企业品牌标识,并优化了原版Kinoite的一些粗糙之处。
与原版Kinoite的主要区别包括:通过Mozilla官方Flatpak提供Firefox,用Bazaar替代Discover,首次启动时配置Flathub并移除Fedora的flatpak远程仓库,默认Shell为Fish,支持动态壁纸,使用fcitx5处理中日韩输入法,并通过negativo17提供更完整的编解码器栈以支持h264/h265/AV1播放。Docker、虚拟化、Steam和ROCm等重型组件被分离为可选的sysext扩展,而非包含在基础镜像中。镜像内包含PipeWire过滤器链,用于笔记本扬声器DSP设置,并预置Ollama Quadlet单元,便于在CPU、ROCm或Vulkan上运行本地大语言模型。
对于现有的bootc系统,安装过程简单直接:使用`sudo bootc switch ghcr.io/alyraffauf/kyanite:stable`切换镜像并重启。`ujust`命令框架(借鉴自Universal Blue)提供了用于系统管理的自定义配方。
可选的sysext扩展以systemd-sysext负载形式存放在单独仓库中,包括带buildx和compose的Docker CE、带HIP和OpenCL的AMD ROCm、带Gamescope和MangoHud的原生Steam、Syncthing、Tailscale网状VPN以及QEMU/KVM虚拟化。这些扩展通过systemd-sysupdate.timer自动更新,可使用`ujust install-sysext`和`ujust remove-sysext`命令安装或移除。
对于本地大语言模型,三个Quadlet单元以用户级systemd服务形式运行Ollama,并在容器内提供GPU运行时。CPU、ROCm和Vulkan后端互斥,共享ollama-data卷,因此切换时无需重新下载模型权重。ROCm后端支持官方支持的AMD显卡,而Vulkan则覆盖ROCm不支持的显卡。
Syncthing作为原生sysext提供,可通过127.0.0.1:8384访问图形界面,并继承~/.local/state/syncthing/中的现有配置。
Quadlet模板位于/usr/share/kyanite/quadlets/,由ujust配方复制到~/.config/containers/systemd/,这样系统更新不会覆盖用户编辑。podman-auto-update.timer默认运行,每晚刷新带有AutoUpdate=registry的quadlet。
自定义通过JSON文件声明式实现:packages.json用于各变体的软件包,services.json用于systemd单元,files/用于变体特定的系统文件,brew/用于Homebrew包,flatpaks/用于预装Flatpak应用,ujust/用于自定义配方。项目提供了变体脚手架以构建不同版本,但目前仅构建主kyanite变体。
本地构建需要Podman和Just。命令包括:`just build`构建容器,`just build-qcow2`用于虚拟机测试,`just build-iso`生成完整ISO(约10GB,耗时30分钟以上),`just run-vm`在QEMU中启动qcow2镜像。共享桌面资源来自摘要固定的kyanite-common OCI层。通过设置BASE_IMAGE为kinoite-nvidia镜像,可进行NVIDIA基础实验。
安全性通过cosign签名处理,并发布公钥。可使用`cosign verify`验证镜像。切换到签名传输需要两步引导:先进行未签名切换以获取策略和密钥,然后重新基于ostree-image-signed:以启用每次拉取镜像时的自动验证,确保字节在写入文件系统前得到校验。
该项目基于Apache 2.0许可证,基于Fedora Kinoite和KDE Plasma构建,灵感来自Universal Blue。
评论
0 评分人数达到10人后显示
登录后参与讨论。