软件包管理与 fzf TUI
仓库提供添加、删除、同步、构建和本地安装的一体化管理脚本。
启动管理界面
安装依赖:
sudo pacman -S fzf github-cli
在源码仓库运行:
cd ~/pkgbuild-source
./manage.sh
主菜单支持:
- 从 AUR 添加 package base。
- 从自定义 Git 地址添加 PKGBUILD。
- 从源码和二进制仓库删除 package base。
- 手动触发全部或指定 AUR 脚本同步。
- 多选软件包并指定编译并行数。
- 在 TUI 中直接检查选定包的
PKGBUILD、.SRCINFO和本地源文件。 - 同步本地
emoeempacman 仓库。 - 从
emoeem选择并安装软件包。 - 查看最近的 GitHub Actions 状态。
- 拉取最新
main。 - 打开或关闭添加、删除操作的自动推送。
软件包选择界面显示版本、架构和描述,并在右侧预览 PKGBUILD;使用Ctrl-/ 显示或隐藏预览。多选界面使用 Tab 切换选择,Ctrl-A 全选,Ctrl-D 取消全选。
按 Esc 可以取消当前菜单。
主菜单标题会显示当前分支、包数量、工作区是否干净以及自动推送状态。
默认情况下,添加和删除会立即提交并推送。以下方式启动时默认只创建本地
提交:
./manage.sh --no-push
可以通过环境变量调整默认配置:
PKGBUILD_GITHUB_REPOSITORY=emoeem/pkgbuild
PKGBUILD_PACMAN_REPOSITORY=emoeem
PKGBUILD_DEFAULT_MAKE_JOBS=2
PKGBUILD_GITHUB_REPOSITORY:GitHub 的owner/repository。PKGBUILD_PACMAN_REPOSITORY:pacman.conf中的仓库名称。PKGBUILD_DEFAULT_MAKE_JOBS:构建菜单默认显示的并行编译数。你的 8C/16T CachyOS 主机可以手动设为 4;CI 通过 workflow input 单独覆盖。
删除软件包
不使用 TUI 时,可以直接运行:
./scripts/remove-package.sh package-base
只创建本地提交:
./scripts/remove-package.sh --no-push package-base
脚本会:
- 拉取最新
main。 - 拒绝删除包含未提交修改的软件包目录。
- 从
.SRCINFO读取 package base 产生的所有pkgname。 - 删除
packages/package-base/。 - 写入
removals/package-base删除记录。 - 提交并默认推送到 GitHub。
Remove packages from private repository 工作流随后会:
- 读取新增的删除记录。
- 从
repo/x86_64删除匹配pkgname的所有当前版本及签名。 - 从剩余软件包重新生成
emoeem.db和emoeem.files。 - 更新 SHA256、签名和单提交
repo快照。
删除完成后,本地客户端会在下次定时更新时同步。也可以立即执行:
emoeem-update
pacman -Sl emoeem
从仓库删除不会卸载电脑上已经安装的软件包。如需卸载:
sudo pacman -Rns package-name
重新添加
重新添加同一个 package base 时:
./scripts/add-aur-package.sh package-base
添加脚本会自动删除对应的 removals/package-base 记录,随后正常触发构建
和发布。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 emoeem!
评论








