Arch Linux:如何使用 pacman 忽略某些存储库的某些包?

Arc*_*ler 4 arch-linux pacman

我有一个名为haskell-core. 我想将每个 haskell 包列入黑名单,extra并改用其中的包haskell-core。我不想使用 haskell 包extra,我需要它的维护成本低。这可能吗?

编辑: Pacman 仍然会安装extra较新的haskell 软件包。

Old*_*ick 8

只需将您的存储库[extra]放在pacman.conf. 您的文件应如下所示:

[core]
Include = /etc/pacman.d/mirrorlist

[<your custom repository>]
Server = <your repository location>

[extra]
Include = /etc/pacman.d/mirrorlist
Run Code Online (Sandbox Code Playgroud)

这样你的haskell包将自动优先于extra同名的官方包,除非extra中的那些版本号更高。如果您不想遇到麻烦,请确保您的包处理官方 haskell 包的所有必要依赖项。这仅适用于自定义软件包的版本号高于官方软件包的情况。

另一种选择是将provides=('<[extra] package name')和添加conflicts=('<package name'>)到您的PKGBUILDs 中,然后将您的存储库添加到其中的任何位置,pacman.conf这样当您安装软件包时,pacman 会询问您是否要替换 中的那些[extra],如果它们已安装。您的自定义软件包不应与官方软件包具有相同的名称。例如,应该调用一个包<package-name>-custom或类似的东西。