Arch 安装包时校验失败怎么办?

 

TLDR

尽管标题夸大了点,实际上写的是如何跳过各种校验。

  • makepkg -si --skipinteg
  • yay --mflags "--skipinteg"
  • makepkg -si --skipchecksums --skippgpcheck
  • yay --mflags "--skipchecksums --skippgpcheck"

(顺带一提,makepkg-s指自动安装依赖,-i指编译(打包?)完成后将软件包安装到系统)

正文

checksum

症状:错误: 一个或多个文件没有通过有效性检查!ERROR: One or more files did not pass the validity check!

PKGBUILD:打开PKGBUILD,把sha256sums(或者别的什么xxxsums)括号内的checksum值均改为SKIP

手动生成校验值(其实和上面没什么区别):makepkg -g,用生成的校验值手动替换PKGBUILD中原有的校验值

makepkg参数:makepkg --skipchecksums

以及,这种情况一般只会出现在AUR包(尤其是比较新的包)中,你也完全可以在AUR和开发者反馈

PGP签名

症状:错误: 一个或多个 PGP 签名无法校验!ERROR: One or more PGP signatures could not be verified!

makepkg --skippgpcheck

顺带一提,arch-keyring不使用系统的gnupg中的密钥。

checksum与PGP签名

makepkg --skipinteg

参考资料

makepkg的官方文档翻译

碎碎念

makepkg选择语言所用的环境变量是LANGUAGE,而不是LC_ALL一类的