这个项目能做什么
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/ 中配置。包可以固定到特定层级,分组一起移动(例如,内核和头文件),在专家模式下,第一层可以要求手动签署确认。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。