package-query 找不到 libalpm.so.12 排错

/ 0评 / 0

package-query 需要人工干预,但 arch-annouce-digest 并没有给我发邮件。(这是因为 package-query 是 AUR 库的软件。)

最近更新了一下系统,重启之后就发现 yaourt 不能用了。虽然 yaourt 是一个已经被标记为「被放弃」的 pacman 扩展,但是我还是不想换其他的。一来是因为用了这么多年,习惯已成自然;再是可以趁着这个机会熟悉一下手动安装软件是怎么一种体验。

这个错误来自 package-query, yaourt 的一个依赖。这个包负责查询 AUR 信息,其依赖于 libalpm.so. 本次系统更新将其版本号提升到了 13, 但由于 package-query 本身没有更新(因为 ArchlinuxCN 源还没有更新),所以它仍在尝试使用 12 版本的动态链接库。

一个非常莽的方案是直接把 13 版本链接到 12 版。这样做是寄希望于这次更新没有删除之前以来的任何函数,也没有更改之前依赖函数的签名。很显然,此次的变更过于巨大,直接链接会导致找不到符号,仍然处于不可用状态。

那么,我们就需要自行下载和编译最新版的 package-query 了。

首先,从 AUR 复制构建信息:

$ git clone https://aur.archlinux.org/package-query.git
$ cd package-query

然后,调用 makepkg 进行自动构建和安装:

$ makepkg -si

升级安装完成后,package-query 将会使用正确的 13 版本链接库。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注