这个项目能做什么

nog 是一个用 Rust 编写的 Arch Linux 包管理器封装,在 pacman 之上增加了一个分层保持系统。它并不替代 pacman,而是使用相同的命令和标志,同时根据包的重要性引入更新延迟。 **分层系统:** 包被分为三个层级,并具有可配置的保持时长: - 第一层(内核、引导加载程序、glibc、systemd、mesa):保持 30 天 - 第二层(桌面环境、关键应用程序):保持 15 天 - 第三层(其他所有包):保持 7 天 保持期从首次看到更新时开始计算,而不是从最新构建开始,从而避免繁忙的包被无限期保持。一旦保持期结束,最新版本还必须通过一个更短的“安全等待期”(按层级分别为 7/3/1 天)才能安装。 **多源支持:** nog 管理来自官方 pacman 仓库、AUR(通过 yay 或 paru)、Flatpak 和 Snap 的更新。每个源可以单独启用或停用。Snap 的保持设置在 snapd 本身中,以防止自动刷新绕过。 **安全特性:** 密钥环包永远不会被保持。在事件期间,可以切断 AUR 或 chaotic-aur 源的开关。nog 以普通用户身份运行,仅在特定时刻提升到 root 权限。保持使用 pacman 自身的 --ignore 标志。AUR 助手只接收经过清理的包名,防止通过失败的查找绕过。 **报告:** 更新被分为“就绪”、“保持中”和“未知”三类,并带有层级颜色。汇总表显示每个仓库的状态。每次运行都记录到一个带日期的 CSV 文件中,保留 90 天。当内核或驱动更新使运行中的系统不同步时,会提供重启建议。 **维护:** nog clean 清除 pacman 缓存中的旧下载,并采用分层保留策略(第一层保留 3 个版本,第二层保留 2 个,第三层保留 1 个),始终保留已安装版本以便回滚。 **配置:** 层级分配和保持时长在 /etc/nog/ 中配置。包可以固定到特定层级,分组一起移动(例如,内核和头文件),在专家模式下,第一层可以要求手动签署确认。