如何使用 zypper 在给定日期之前安装软件包?

如何使用 zypper 在给定日期之前安装软件包?

我们在手册页中找不到它的参数,但也许有一个解决方案:

问题:我们如何在给定日期之前安装软件包?因此,不是软件包的最新版本,而是在给定日期之前发布的旧版本。

手动一一选择它们太慢了。

答案1

我怀疑您是否能够在给定日期之前安装。我尝试向后设置系统日期,但这不起作用。也没有可以传递给 rpm 的选项,而 rpm 正是 zypper 在下面使用的。

因此,我能想到的唯一方法是为 SuSe 设置一个本地 RPM 存储库,并在某个日期之前用这些包填充该存储库并使用它。找出特定日期有哪些可用的内容Archive.org可能有用。

了解如何设置本地 OpenSuSE 存储库。

答案2

zypper search -s --match-substrings可能是您可以拥有的最佳搜索选项。但是,它并不真正在 RPM 中搜索包构建日期。我认为您尝试做的是拉取/安装在特定日期之前发布的所有更新。

我所做的是手动拉取包,用存储库托管它们。我的存储库位于 CentOS 主机上。它是用 createrepo 创建的。在 zypper .repo 文件中,指定“type=yum”。

答案3

我假设您想在最新版本之前安装特定版本的软件包。以 MozillaFirefox 为例,当使用以下命令搜索 MozillaFirefox 软件包时:
zypper se -t package -s MozillaFirefox
输出将为(i586 软件包和其他不相关的软件包已被截断):

v | MozillaFirefox | 软件包 | 38.0.1-30.1 | x86_64 | openSUSE-13.2-Update
v | MozillaFirefox | 软件包 | 37.0.2-27.1 | x86_64 | openSUSE-13.2-Update
v | MozillaFirefox | 软件包 | 37.0.1-23.1 | x86_64 | openSUSE-13.2-Update
v | MozillaFirefox | 软件包 | 36.0.4-18.1 | x86_64 | openSUSE-13.2-Update
v | MozillaFirefox | 软件包 | 36.0-14.2 | x86_64 | openSUSE-13.2-Update
v | MozillaFirefox | 软件包 | 35.0-9.1 | x86_64 | openSUSE-13.2-Update
v | MozillaFirefox |软件包 | 34.0.5-5.4 | x86_64 | openSUSE-13.2-Update
i | MozillaFirefox | 软件包 | 33.0-2.1 | x86_64 | openSUSE-13.2-Oss
i | MozillaFirefox | 软件包 | 33.0-2.1 | x86_64 | openSU

我们可以看到,该系统上已经安装了MozillaFirefox 33.0-2.1版本,最新版本为38.0.1-30.1。
如果您不想安装最新版本,而只想安装 36.0 版之前的版本,那么您所要做的就是调用zypper indo it for you。
语法是:
zypper in 'Mozillafirefox.x86_64<36.0
您还可以安装 i586 架构包
zypper in 'Mozillafirefox.i586<36.0
或者您可以让 zypper 为您选择包架构
zypper in 'Mozillafirefox<36.0

然后 zypper 将安装与版本 36.0 最接近的版本 35.0-9.1。
zypper 还提供对“>、<=、>= 等”的支持;你可以用 看到它zypper help in
希望这就是您正在寻找的内容并希望对您有所帮助。

相关内容