极光,一个 aur 助手
- 支持方向键交互选择
- 自带 GitHub 镜像(这个是软件包构建时需要的)
- 可使用 GitHub aur 镜像(这个是包索引,用于检查包更新, https://github.com/archlinux/aur )
- 构建时可同时下载多个文件
安装 deno
sudo pacman -S deno运行
deno run src/main.ts或者直接给权限
deno run -A src/main.ts编译
deno run build你可以把dist/aurora 复制到~/.local/bin下
现在只有更新功能
- tab 补全支持
- 编辑 PKGBUILD 文件
- aur 更复杂的依赖(目前只处理的一层)
默认启用了镜像,包索引之类的还是官方的。
创建~/.config/aurora/config.json。
type Config = {
"index.useGithub": boolean; // 默认为false
"index.url": string; // 默认为 https://aur.archlinux.org/rpc/?v=5 或 https://api.github.com/graphql 可覆盖
"github.token": string; // 在使用index.useGithub 或 pkg.useGithub 时必须
"pkg.useGithub": boolean; // 默认为false
"pkg.url": string; // 默认为 https://aur.archlinux.org/$pkgname.git 或 https://github.com/archlinux/aur.git 可覆盖
"build.useMirror": boolean; // 默认为true
"build.mirrorList": {
// 配置后将覆盖原有的镜像,src为查找的字符或正则,to为要转换的内容。只用于构建,不用于索引
src: string;
type: "git" | "http";
regex?: true;
to: string;
}[];
"build.download.concurrent": number; // 并行下载文件数,默认为4
"web.cert": string; // 网络证书
};比如,要启用 GitHub AUR 镜像:
{
"index.useGithub": true,
"github.token": "ghp_your_token",
"pkg.useGithub": true,
"pkg.url": "https://hub.gitmirror.com/https://github.com/archlinux/aur"
}如果想在索引中启用镜像,需要手动修改index.url或pkg.url。不过我没找到api.github.com的镜像。
本来 GitHub AUR 镜像为了在官方索引不稳定时提供的后备,但也是访问困难呢。可以安装watt-toolkit-bin来加速 GitHub。由于默认启用 GitHub 构建的镜像,就不会有 我访问不了 GitHub -> AUR 安装加速器 -> 安装加速器要访问 GitHub 的死循环 🎉。
1.检查包索引
通过pacman -Qm获取本地安装的 AUR 包
访问https://aur.archlinux.org/rpc/?v=5,查询版本更新的
2.下载包构建脚本
下载一个包有PKGBUILD的仓库,一般使用https://aur.archlinux.org/$pkgname.git。这里面只有简单的几个文本。
3.构建
使用makepkg,这个系统自带的命令会根据PKGBUILD或.SRCINFO下载二进制数据或源代码,执行编译构建。
生成.pkg.tar.zst包
4.安装
pacman -U .pkg.tar.zst安装
我们注意到,索引、下载包、构建都需要范围网络。
索引和下载需要访问 arch 官方,可能不稳定。所以可以用 https://github.com/archlinux/aur 来做备用。
当然大头还是构建,构建需要访 GitHub,比如代码需要从 GitHub 上克隆,二进制文件需要从 GitHub 的 release 下载。
设置makepkg的镜像很麻烦。
所以 aurora 不使用makepkg来下载构建数据文件,而是用 deno 自带的fetch来下载,这样做镜像很方便。同时也可以实现多文件并行下载。