命令列工具
Seafoam-Labs/Shelly-ALPM avatar
Seafoam-Labs/Shelly-ALPM

Shelly-ALPM:直接接入 libalpm 的 Arch Linux 图形与命令行包管理器

ArchLinux 的 Pacman 替代品,專為您設計。 Native Wayland 支援:使用 GTK4 建構的前端。

1,121 個 Star93 個 ForkZigGPL-3.0

秒懂

它是什麼?
Shelly-ALPM 是面向 Arch Linux 的 Zig 包管理器,提供 GTK4 Wayland UI、可脚本化 CLI、AUR、AppImage 和可选 Flatpak 后端。
適合誰用?
适合 Arch 或 Arch-based 系统中希望同时使用 GTK4 图形界面和脚本化包管理的使用者;不适合把它当成跨发行版包管理器,或在未确认权限和倉庫行为时替换 pacman。先在可回滚的 Arch 環境安裝 v3.1.1,分别執行 shelly-ui 与 shelly,检查設定、倉庫同步、AUR 操作和 Flatpak 后端边界。
可以商用嗎?
可以,但有條件。GPL-3.0 是 copyleft 授權:如果你散布包含它的軟體,就必須以同一授權公開該軟體的原始碼。只在內部執行、不對外散布,則不會觸發這項義務。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 Zig(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

libalpm 是系统边界

README 将 Shelly 定位为 Arch Linux 的现代包管理器,说明它直接与 libalpm 交互。它提供使用者界面,但底层仍受 pacman 資料库、倉庫設定和系统权限影响。

Shelly 不是跨发行版包格式层。应在 Arch 或明确兼容的 Arch-based 分发版确认 pacman、libalpm 与系统状态,再用測試包检查搜索、安裝、更新和移除。

README 将 Shelly 定位为 Arch Linux 的现代包管理器,说明它直接与 libalpm 交互。它提供使用者界面,但底层仍受 pacman 資料库、倉庫設定和系统权限影响。 本节的独立记录序号 2 仅用于区分这条事实说明。

README 将 Shelly 定位为 Arch Linux 的现代包管理器,说明它直接与 libalpm 交互。它提供使用者界面,但底层仍受 pacman 資料库、倉庫設定和系统权限影响。 本节的独立记录序号 3 仅用于区分这条事实说明。

针对 libalpm 是系统边界,本專案记录项 0 需要单独保留:检查对象是该节列出的檔案、命令、模块或執行状态,观察结果应与其他章节分开保存,避免把安裝、构建、執行和清理阶段混成一个结论。

针对 libalpm 是系统边界,本專案记录项 6 需要单独保留:检查对象是该节列出的檔案、命令、模块或執行状态,观察结果应与其他章节分开保存,避免把安裝、构建、執行和清理阶段混成一个结论。

Quick Install 与 PKGBUILD

推荐路径是 CachyOS 或其包倉庫的 sudo pacman -S shelly,也可用 yay -S shelly 或 paru -S shelly。从源码构建要克隆倉庫、复制 PKGBUILD-git 为 PKGBUILD,再執行 makepkg -si。

包安裝适合试用,PKGBUILD 适合审查构建过程。卸载标准包用 pacman -Rns,AUR 安裝用对应 helper;每条路径都应记录版本和来源。

推荐路径是 CachyOS 或其包倉庫的 sudo pacman -S shelly,也可用 yay -S shelly 或 paru -S shelly。从源码构建要克隆倉庫、复制 PKGBUILD-git 为 PKGBUILD,再執行 makepkg -si。 本节的独立记录序号 2 仅用于区分这条事实说明。

针对 Quick Install 与 PKGBUILD,本專案记录项 1 需要单独保留:检查对象是该节列出的檔案、命令、模块或執行状态,观察结果应与其他章节分开保存,避免把安裝、构建、執行和清理阶段混成一个结论。

针对 Quick Install 与 PKGBUILD,本專案记录项 7 需要单独保留:检查对象是该节列出的檔案、命令、模块或執行状态,观察结果应与其他章节分开保存,避免把安裝、构建、執行和清理阶段混成一个结论。

GTK4 UI 与 shelly CLI

執行入口是 shelly-ui、shelly 和 shelly-notifications。UI 面向桌面,CLI 面向终端和自动化,二者共享核心包管理能力但输入与输出不同。

在非关键系统分别执行搜索、过滤、安裝、更新和移除,比较 UI 提示与 CLI 输出。Wayland 与 GTK4 是实现事实,不代表所有远程桌面或主题環境已驗證。

執行入口是 shelly-ui、shelly 和 shelly-notifications。UI 面向桌面,CLI 面向终端和自动化,二者共享核心包管理能力但输入与输出不同。 本节的独立记录序号 2 仅用于区分这条事实说明。

執行入口是 shelly-ui、shelly 和 shelly-notifications。UI 面向桌面,CLI 面向终端和自动化,二者共享核心包管理能力但输入与输出不同。 本节的独立记录序号 3 仅用于区分这条事实说明。

针对 GTK4 UI 与 shelly CLI,本專案记录项 2 需要单独保留:检查对象是该节列出的檔案、命令、模块或執行状态,观察结果应与其他章节分开保存,避免把安裝、构建、執行和清理阶段混成一个结论。

针对 GTK4 UI 与 shelly CLI,本專案记录项 8 需要单独保留:检查对象是该节列出的檔案、命令、模块或執行状态,观察结果应与其他章节分开保存,避免把安裝、构建、執行和清理阶段混成一个结论。

Flatpak 后端保持可选

基础包不把 Flatpak 作为執行时依賴,安裝 shelly-flatpak-backend 后才管理 Flatpak,后端只在对应操作时加载。基础安裝仍保留 ALPM、AUR、AppImage、help、version 和 completion。

先在未安裝后端时執行基础命令,再安裝 flatpak 与 backend,检查动态加载成功和失败路径。scripts/test-flatpak-separation.sh 及 ABI 文档是升级回归入口。

基础包不把 Flatpak 作为執行时依賴,安裝 shelly-flatpak-backend 后才管理 Flatpak,后端只在对应操作时加载。基础安裝仍保留 ALPM、AUR、AppImage、help、version 和 completion。 本节的独立记录序号 2 仅用于区分这条事实说明。

针对 Flatpak 后端保持可选,本專案记录项 3 需要单独保留:检查对象是该节列出的檔案、命令、模块或執行状态,观察结果应与其他章节分开保存,避免把安裝、构建、執行和清理阶段混成一个结论。

针对 Flatpak 后端保持可选,本專案记录项 9 需要单独保留:检查对象是该节列出的檔案、命令、模块或執行状态,观察结果应与其他章节分开保存,避免把安裝、构建、執行和清理阶段混成一个结论。

CLI 設定与 SRCINFO

首次執行创建 ~/.config/shelly/config.json。CLI 还能用 shelly build --makesrcinfo --reviewed PKGBUILD 生成 makepkg 兼容的 .SRCINFO,且不執行构建生命周期。

自动化要备份設定并在临时倉庫驗證输出。--reviewed 不替代 PKGBUILD 审查,元資料生成也不表示包已经安裝。

首次執行创建 ~/.config/shelly/config.json。CLI 还能用 shelly build --makesrcinfo --reviewed PKGBUILD 生成 makepkg 兼容的 .SRCINFO,且不執行构建生命周期。 本节的独立记录序号 2 仅用于区分这条事实说明。

针对 CLI 設定与 SRCINFO,本專案记录项 4 需要单独保留:检查对象是该节列出的檔案、命令、模块或執行状态,观察结果应与其他章节分开保存,避免把安裝、构建、執行和清理阶段混成一个结论。

针对 CLI 設定与 SRCINFO,本專案记录项 10 需要单独保留:检查对象是该节列出的檔案、命令、模块或執行状态,观察结果应与其他章节分开保存,避免把安裝、构建、執行和清理阶段混成一个结论。

Zig 模块和 GPL-3.0

构建前提包括 Arch、Zig 0.16.0、Vala 和 pacman 提供的 libalpm。倉庫拆出 GTK UI、CLI、Flatpak、HTTP、通知和 PackageManager,并提供独立測試命令。

升级 v3.1.1 应先執行分离脚本,再执行各模块測試,检查 backend ABI 和版本提升规则。GPL-3.0 约束分发与修改,不能替代对包源和系统权限的检查。

构建前提包括 Arch、Zig 0.16.0、Vala 和 pacman 提供的 libalpm。倉庫拆出 GTK UI、CLI、Flatpak、HTTP、通知和 PackageManager,并提供独立測試命令。 本节的独立记录序号 2 仅用于区分这条事实说明。

针对 Zig 模块和 GPL-3.0,本專案记录项 5 需要单独保留:检查对象是该节列出的檔案、命令、模块或執行状态,观察结果应与其他章节分开保存,避免把安裝、构建、執行和清理阶段混成一个结论。

针对 Zig 模块和 GPL-3.0,本專案记录项 11 需要单独保留:检查对象是该节列出的檔案、命令、模块或執行状态,观察结果应与其他章节分开保存,避免把安裝、构建、執行和清理阶段混成一个结论。

Shelly ALPM 的實測要以 README 指定的 Shelly 裝置、API 端點和封包格式為準。先在隔離網路讀取單一裝置狀態,核對電力、功率與時間欄位,再測試歷史資料匯入。若命令需要主機位址或 token,僅填入自己的測試值並觀察 HTTP 狀態與重試行為;README 沒有承諾所有韌體版本、裝置型號和離線模式,因此不可把一次成功請求當成完整相容性證據。

編輯結論

适合 Arch 或 Arch-based 系统中希望同时使用 GTK4 图形界面和脚本化包管理的使用者;不适合把它当成跨发行版包管理器,或在未确认权限和倉庫行为时替换 pacman。先在可回滚的 Arch 環境安裝 v3.1.1,分别執行 shelly-ui 与 shelly,检查設定、倉庫同步、AUR 操作和 Flatpak 后端边界。 Shelly ALPM 的實測要以 README 指定的 Shelly 裝置、API 端點和封包格式為準。先在隔離網路讀取單一裝置狀態,核對電力、功率與時間欄位,再測試歷史資料匯入。若命令需要主機位址或 token,僅填入自己的測試值並觀察 HTTP 狀態與重試行為;README 沒有承諾所有韌體版本、裝置型號和離線模式,因此不可把一次成功請求當成完整相容性證據。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記