ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

QBZ打包与发布全解析:AUR、Flatpak、Snap、APT到NixOS的全渠道发行清单

QBZ打包与发布全解析:AUR、Flatpak、Snap、APT到NixOS的全渠道发行清单

【免费下载链接】qbz

A native, full-featured hi-fi Qobuz desktop player for Linux, macOS & Win, with fast, bit-perfect audio playback.

项目地址:https://gitcode.com/gh_mirrors/qb/qbz
点击查看免费下载

QBZ 是一款面向 Linux、macOS 和 Windows 的原生高保真 Qobuz 桌面播放器,支持 bit-perfect(逐比特无损)音频输出。它的打包与发布覆盖了几乎所有主流 Linux 发行渠道:AUR、Flatpak、Snap、APT/RPM 原生包、Gentoo、NixOS 与便携 AppImage,本文带你一次看全。

全渠道一览:QBZ 有哪些发行方式

QBZ 采用 Rust + Slint 构建出单个自包含二进制(无浏览器引擎、无 webview),所有渠道本质上都是围绕这同一份产物做"包装",配置集中在 packaging/ 目录下:

渠道包名配置位置适用系统
AURqbz-bin(预编译)/qbz(源码)packaging/aur/PKGBUILD、packaging/arch/PKGBUILDArch Linux
Flatpakcom.blitzfc.qbzpackaging/flatpak/com.blitzfc.qbz.ymlFlathub 全发行版
Snapqbz-playerpackaging/snap-slint/snapcraft.yamlUbuntu、GNOME 系
APT / RPMqbz(.deb / .rpm)packaging/nfpm/nfpm.yamlDebian、Ubuntu、Fedora、openSUSE
Gentoomedia-sound/qbz/qbz-binpackaging/gentoo/qbz.ebuild.templateGentoo
NixOS / Nixqbzflake.nixNixOS、任意 Nix 环境
AppImageQBZ.AppImagepackaging/appimage/README.md免安装、全发行版

AUR 安装步骤:Arch 用户的两条路径

Arch 用户有两份 PKGBUILD 可选:

  • qbz-bin(推荐):packaging/aur/PKGBUILD 直接下载 Release 中的预编译二进制(同时支持x86_64与aarch64),安装极快,并声明provides=('qbz')与源码包互斥,避免冲突。
  • qbz(源码编译):packaging/arch/PKGBUILD 从源码标签构建。注意:UI 编译内存峰值可达 30 GB,因此固定使用CARGO_BUILD_JOBS=1单任务构建。
yay -S qbz-bin # 或 paru -S qbz-bin

依赖清单非常精简:alsa-lib、fontconfig、freetype2等 9 个运行时库,外加可选的alsa-utils(让 ALSA 设备显示友好名称而非front:CARD=CS201,DEV=0)。

Flatpak 安装命令:Flathub 上的沙箱发行

在 Flathub 商店搜索com.blitzfc.qbz,或执行:

flatpak install flathub com.blitzfc.qbz

构建清单 com.blitzfc.qbz.yml 基于 GNOME 49 运行时 +rust-stableSDK 扩展,权限设计是全文档的亮点,为"沙箱"与"bit-perfect"同时让路:

  • --device=all:获得/dev/snd直接声卡访问,保证 Flatpak 内也能走ALSA Direct 独占模式(与 Strawberry、mpv 同类做法);
  • --own-name=org.freedesktop.ReserveDevice1.*:通过 PipeWire 设备预留协议优雅地"独占"声卡;
  • --talk-name=org.mpris.MediaPlayer2.*:MPRIS 媒体键开箱即用;
  • 还打通了 Discord Rich Presence 的 IPC socket 与用户音乐目录xdg-music。

🎧 发烧友注意:Flatpak 沙箱会限制 PipeWire bit-perfect,建议切换到ALSA Direct 后端获得逐比特输出。

商店展示所用的 AppStream 元数据(含 6 张截图、应用 ID 与发行截图)见 com.blitzfc.qbz.metainfo.xml。

Snap 安装方法:qbz-player 的 strict 沙箱

Snap Store 上的包名为qbz-player(沿用已注册的商店名),安装后需手动连接音频接口:

sudo snap install qbz-player sudo snap connect qbz-player:alsa sudo snap connect qbz-player:pipewire

仓库里其实有两份 Snap 配方,分工明确:

  • snapcraft.yaml(根目录,packaging/snap/snapcraft.yaml 是其符号链接):源码构建版,供本地snapcraft开发调试;
  • packaging/snap-slint/snapcraft.yaml:CI 发布路径,用dump插件直接包装预编译二进制,几秒即可完成,另配 snapcraft-arm64.yaml 处理 ARM。

配方采用strict严格沙箱 +core24基础,通过alsa、pipewire、opengl接口和mpris插槽暴露能力,并用layout绑定宿主机的/etc/alsa等目录——没有这一步,hw:直出(bit-perfect)路径会失效。

APT 仓库配置:Debian/Ubuntu 原生包

APT 包由 nfpm.yaml 从预编译二进制生成.deb与.rpm。运行时依赖是实测ldd结果的 7 个库(alsa、fontconfig、freetype 等),而 wayland/GL/dbus 等由 winit 运行时 dlopen,放在Recommends中——缺失只降级不阻塞安装,这个细节让旧机器也能装上。

curl -fsSL https://vicrodh.github.io/qbz-apt/qbz-archive-keyring.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/qbz-archive-keyring.gpg > /dev/null cat <<EOF | sudo tee /etc/apt/sources.list.d/qbz.sources Types: deb URIs: https://vicrodh.github.io/qbz-apt Suites: stable Components: main Architectures: $(dpkg --print-architecture) Signed-By: /usr/share/keyrings/qbz-archive-keyring.gpg EOF sudo apt update && sudo apt install qbz

⚠️ 需要glibc 2.39+(Ubuntu 24.04+、Debian 13+、Fedora 40+、openSUSE Tumbleweed)。老系统请改用 Flatpak、Snap 或 AppImage。Fedora/openSUSE 用户也可从 Releases 下载.rpm后sudo dnf install ./qbz-*.rpm。

NixOS 安装方法:flake 一行接入

QBZ 自带 flake.nix,用rustPlatform.buildRustPackage从 Release 标签拉取源码构建,并用wrapProgram注入运行时库路径(winit/wgpu dlopen 的 wayland、libglvnd、X11 库,Nix 环境必须显式提供,否则应用只能跑 Wayland)。

在flake.nix中声明输入后,NixOS 系统级安装:

inputs.qbz.url = "github:vicrodh/qbz"; # NixOS:environment.systemPackages = [ # inputs.qbz.packages.${pkgs.system}.default # ]; # Home Manager:home.packages = [ # inputs.qbz.packages.${pkgs.system}.default # ];

🎁 彩蛋:flakes 还附带一个devShell(nix develop),内置 rust-analyzer、clippy、rustfmt,并自动导出LIBCLANG_PATH,为贡献者一键备好开发环境。此外 QBZ 已收录于 nixpkgs 主仓库,可直接nix profile install nixpkgs#qbz。

Gentoo 与 AppImage:另两种尝鲜方式

Gentoo通过独立 overlay 提供两个包:

eselect repository add qbz-overlay git https://github.com/vicrodh/qbz-overlay.git emerge --sync qbz-overlay emerge media-sound/qbz-bin # 预编译二进制(推荐) # 或 emerge media-sound/qbz # 源码编译

源码 ebuild 模板 qbz.ebuild.template 支持pipewire、pulseaudioUSE 标志;官方同样提醒:release 构建峰值内存 20–30 GB,普通用户请选qbz-bin。

AppImage则是完全免安装的路径:从 Releases 下载后

chmod +x QBZ-*.AppImage && ./QBZ-*.AppImage

依赖说明(libasound2、alsa-utils排障等)见 packaging/appimage/README.md。装上appimaged或appimagelauncher后即可出现在应用菜单中。

qbzd:随包发行的无头守护进程

除了桌面客户端,发行包中还内置了qbzd——一个无头 Qobuz 播放守护进程,可部署在树莓派、NUC 等"接上 DAC 就常开"的机器上,注册为 Qobuz Connect 设备:

  • APT/RPM 包通过 nfpm.yaml 同时安装qbzd二进制与 qbzd.service(systemd 用户单元,默认不启用,需loginctl enable-linger);
  • 独立下载的 tarball(qbzd+ 服务单元 + shell 补全)专为glibc 2.35构建,兼容树莓派 OS bookworm,安装流程详见 qbzd-standalone-README.md。

各渠道通用注意事项

  • 应用元数据统一:所有 Linux 渠道共用 packaging/linux/qbz.desktop(含x-scheme-handler/qobuzapp深链协议)与 packaging/icons/ 下的 hicolor 图标;Flatpak/AUR 安装为com.blitzfc.qbz.desktop,以便 GNOME 按 AppStream 的<launchable>正确解析 MPRIS 图标;
  • 构建内存墙:无论哪个源码构建渠道(AUR/Gentoo/Nix/Snap),UI 模块都会峰值 20–30 GB 内存并固定单任务编译——这是选"预编译包"的最大理由;
  • 老系统兜底:glibc 2.39+ 是原生二进制包的红线,低于它就用 Flatpak / Snap / AppImage。

如何选择最适合你的QBZ安装渠道

你的情况推荐渠道
Arch Linux 用户AURqbz-bin
想要开箱即用 + 桌面商店Flatpak(Flathub)
Ubuntu / GNOME 全家桶Snapqbz-player
Debian / Ubuntu 24.04+ 要原生包APT 仓库
Fedora / openSUSERPM 或 APT 仓库(需 glibc 2.39+)
Nix 用户flake 或 nixpkgs 中的qbz
不想装任何东西 / 双系统便携AppImage
树莓派常开音频服务器qbzd 独立守护进程

无论选哪条路,装好之后 QBZ 都能把 24-bit/192 kHz 的原始数据直送你的 DAC——这就是这套多渠道发行清单背后的最终目的。

【免费下载链接】qbz

A native, full-featured hi-fi Qobuz desktop player for Linux, macOS & Win, with fast, bit-perfect audio playback.

项目地址:https://gitcode.com/gh_mirrors/qb/qbz
点击查看免费下载
上一篇:TradingView MCP Jackson进阶技巧:利用replay模式提升交易策略回测效率
下一篇:Dracula Theme设计系统:组件库与设计令牌的完整方案

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进