Arch Linux pacman 指定包版本

mer*_*ius 22 arch-linux version pacman package-management

我知道我可以pacman像手册中显示的那样定义想要的包版本pacman -S "bash>=3.2"。但是我怎么知道有哪些版本可用?

我也知道pacman在同步 .db 文件时创建镜像副本/var/lib/pacman/sync/,但这些文件不是人类可读的。

如果我想安装某个版本virtualbox,例如,我希望在某个地方的镜像中,那不需要比我安装的(因为驱动程序)更新的版本linux(设置为IgnorePkgin )怎么办?我如何知道这是什么版本以及它是否可用?pacman.confnvidia

小智 18

您无法轻松指定一个版本,作为滚动版本,pacman只会提供最新版本。当您安装某些东西时,该软件包会存储在您计算机中的/var/cache/pacman/pkg/目录中,因此如果您想降级一个版本或指定另一个版本,则必须使用pacman -U缓存中的软件包名称。那里有“时间机器”存储库,人们只是在那里存储旧包,您可以下载所需的版本并用于pacman -U安装它。

请注意,如果您不想更新该软件包,则必须“忽略”该软件包的更新,要了解如何操作,请查看 pacman 页面或此 Arch-Wiki 页面中的 wiki 。

在你的情况下,添加

IgnorePkg=bash
Run Code Online (Sandbox Code Playgroud)

/etc/pacman.conf

  • “作为滚动版本,pacman 将只提供最新版本。” 错误的!滚动释放并不意味着这一点。你可以有一个支持旧包的滚动版本。 (3认同)
  • @meridius 我在 https://archive.archlinux.org/packages/ 使用了 `pacman -U` 选项和我需要的包的完整 URL。此外,您可能希望将该特殊包添加到忽略列表中,否则它将被覆盖。@jasonwryan,滚动发布有很多好处,但有些事情会发生,你不得不保留一些“不是新的”版本:D,直到应用修复。 (3认同)