如何使用 PKGBUILD 文件更新 Arch Linux 上安装的软件包?

如何使用 PKGBUILD 文件更新 Arch Linux 上安装的软件包?

为了清楚起见,我编辑了我的问题。

TL;DRyay当我更新 PKGBUILD 文件时,是否会更新我最初从本地 PKGBUILD 安装的软件包?换句话说,AUR 帮助程序可以用于不在 AUR 中的包吗?

详细信息:假设我在本地创建一个 PKGBUILD 文件,并使用它来安装不在 AUR 中的软件包,使用以下步骤:

安装软件包

  • 获取构建文件,包括 PKGBUILD 和可能的其他所需文件,例如 systemd 单元和补丁(通常不是实际代码)。
  • 验证 PKGBUILD 和随附文件不是恶意的或不可信的。
  • 在保存文件的目录中运行makepkg -si。这将下载代码,使用 pacman 解决依赖关系,编译它,打包它,然后安装包。

我按照上述步骤在不使用 AUR 帮助程序的情况下安装软件包后,以后可以使用 AUR 帮助程序保持软件包更新吗?当然,由于该包不在 AUR 中,因此当开发人员发布新版本时,我必须更新本地 PKGBUILD 文件。假设我这样做,一个好的 AUR 助手(例如yay)能够正确运行makepkgpacman -U吗?

我的动机是为这些非 AUR 包维护相同的工作流程,这意味着我希望使用 AUR 帮助程序来保持它们更新。

更广泛地说,我的问题是,AUR 帮助程序如何确定软件包何时需要更新?他们是否完全依赖在线存储库,或者他们是否可以对 AUR 中未包含的本地软件包做出决定?

如果最后一个问题的答案是肯定的,那么在使用我自己的本地 PKGBUILD 时需要遵循哪些步骤?很明显,当应用程序的新版本发布时,我需要更新我的 PKGBUILD 文件。我是否需要将 PKGBUILD 文件放在某个位置以便使用诸如yay查找它们之类的工具?我是否需要以yay某种方式“注册”本地 PKGBUILD 文件?我是否需要遵循有关版本号的特定约定?

答案1

您提到的所有工具都不会自动执行此操作,因为它们都依赖于软件包维护者来更新新版本的 PKGBUILD。唯一的例外是 VCS PKGBUILD,默认情况下它们会提取最新的源代码。

AUR 帮助程序读取 srcinfo 以确定包是否已更新。工作中没有魔法,仍然需要有人进行此操作以及对 PKGBUILD 进行任何其他必要的更改,以触发重建/更新。

您可以编写一个脚本来更新 PKGBUILD,但您实际上承担了维护者角色,因此无论您如何实现它,必须更新 PKGBUILD。

相关内容