最近开发 lazycat-terminal,不会整 AUR 的包,干脆让 AI 帮忙。
今天分享一下 AI 创建 AUR 的方法
准备工作
先去 https://aur.archlinux.org/ 网站上注册你的账户,跟着提示走就好了,注册的时候需要你生成 SSH 公私钥,然后把 SSH 公钥填上去,方便后续 git push
注册好以后,AUR 网站会提示你设置账户密码,设置好以后,重新登录 AUR 网站。
终端中执行 ssh -T aur@aur.archlinux.org 命令来测试账户, 如果输出就证明你账号没问题了。
Welcome to AUR, xxx! Interactive shell is disabled.
Try `ssh aur@aur.archlinux.org help` for a list of commands.
AI生成PKGBUILD
直接告诉 AI,你要创建一个 AUR 包,让它给你生成 PKGBUILD 文件
本地打包测试
本地打包测试的目的主要是看 PKGBUILD 写的对不对,能不能生成 Arch 包。
命令是两条:
- makepkg: 这个命令会根据 PKGBUILD 自动生成一个 Arch 包, 一般是以 tar.zst 后缀结尾
- sudo pacman -U xxx.tar.zst: 这个命令就是本地安装,如果安装成功就证明线上一定没问题
AUR包构建
注意, 在你构建 AUR 包之间需要先明白几个概念:
- 你的 git 代码仓库是用于存储你项目代码的,和 AUR 包的仓库没关系
- AUR 代码仓库只需要两个文件 PKGBUILD 和 .SRCINFO, PKGBUILD 是打包构建脚本, .SRCINFO 是软件包元信息, 根据 PKGBUILD 自动生成
- AUR 包安装的时候,会根据上面两个文件的信息,拉取你的 git 仓库动态生成安装包,所以不要在 AUR 上传你的代码,AUR 仓库只需要第二步的两个文件
如果你明白这几个概念的话, 下面就是构建 AUR 包的方法
- 创建 AUR 仓库: git clone aur@aur.archlinux.org:your-package.git , 其中 your-package 是你要创建的 AUR 的名字, 需要唯一,不要和别人的包名冲突了
- 在你的 git 项目仓库中提交版本: git tag v0.1.0 ; git push origin v0.1.0 通过这两个命令来提交版本号, 这一步是在你的项目代码仓库里, 提交版本好的目的是让 AUR 包可以从 github 上下载你的源码
- 把上一步 PKGBUILD 文件中的 pkgver 改成 0.1.0 后, 拷贝到第一步创建的 AUR 仓库
- 在 AUR 仓库执行 updpkgsums ; makepkg –printsrcinfo > .SRCINFO 这两条命令生成 .SRCINFO 文件
- git add PKGBUILD 和 .SRCINFO 这两个文件后, git push 就好了
过一会再去看你的 AUR 首页就会看到包发布了, 后面就可以通过 yay -S your-package 来安装包了
更新AUR包版本
其实和上一章讲的一样
- 在你的 git 项目仓库中提交新的版本: git tag v0.1.1 ; git push origin v0.1.1
- 把 AUR 仓库中的 PKGBUILD 中的 pkgver 改成 0.1.1
- 在 AUR 仓库执行 updpkgsums ; makepkg –printsrcinfo > .SRCINFO 这两条命令生成新版本的 .SRCINFO 文件
- git commit -a 以后 git push
这样线上的 AUR 包就更新了, 执行 yay -S your-package 来验证吧。