yay 错误: 一个或多个文件没有通过有效性检查!

安装 apifox

> yay -S apifox

==> 正在创建软件包:apifox 2.2.31-1 (2023年04月14日 星期五 21时53分47秒)
==> 获取源代码...
  -> 找到 apifox-v2.2.31-1.zip
  -> 找到 apifox.desktop
  -> 找到 apifox.svg
==> 正在验证 source 文件,使用sha256sums...
    apifox-v2.2.31-1.zip ... 失败    apifox.desktop ... 通过    apifox.svg ... 通过==> 错误: 一个或多个文件没有通过有效性检查! -> 下载源文件时出错: /home/liyang/.cache/yay/apifox 
         context: exit status 1 
         

:: (1/1) 正在解析 SRCINFO: apifox
==> 正在创建软件包:apifox 2.2.31-1 (2023年04月14日 星期五 21时53分49秒)
==> 正在检查运行时依赖关系...
==> 正在检查编译时依赖关系==> 获取源代码...
  -> 找到 apifox-v2.2.31-1.zip
  -> 找到 apifox.desktop
  -> 找到 apifox.svg
==> 正在验证 source 文件,使用sha256sums...
    apifox-v2.2.31-1.zip ... 失败    apifox.desktop ... 通过    apifox.svg ... 通过==> 错误: 一个或多个文件没有通过有效性检查! -> 生成时出错: apifox-exit status 1
 -> 无法安装以下软件包, 需要手动介入处理:
apifox - exit status 1

apifox-v2.2.31-1.zip 新下载的这个文件更新了,和PKGBUILD中记录的签名不一致了,我们要做的就是去修改一下这个签名的值,然后手动打包。

> cd ~/.cache/yay/apifox  
> sha256sum apifox-v2.2.31-1.zip
3be71da14210652162e68dcc355bb67af53f9e9d8059a9f7b94d30d903809099  apifox-v2.2.29-2.zip

上面输出的一段乱七八糟的字符串就是签名,复制它。

打开PKGBUILD文件,找到source,看这个zip文件在后面括号里第几位,再找到sha256sums,再同样的位置,将这段字符串替换上去。

makepkg

这时候已经生成了打包文件apifox-2.2.31-1-x86_64.pkg.tar.zst

sudo pacman -U apifox-2.2.31-1-x86_64.pkg.tar.zst

安装成功。