如何在 openSUSE 中在另一台计算机上安装完全相同的软件包?

如何在 openSUSE 中在另一台计算机上安装完全相同的软件包?

另一台计算机也可以是虚拟机。由于硬件差异和设置,我无法进行磁盘克隆。

我有计算机 A,已安装并正在运行,我还有计算机 B。我将在 B 上安装相同的操作系统,因此我将获得相同的基本系统。

然后我将手动添加与 A 上相同的存储库。

但最后一个阶段超出了我的范围——如何安装与 A 上相同的软件包?请注意,版本必须匹配,而不仅仅是包名称。

当然我正在寻找自动的方式,而不是手动一一安装。

实际上,我应该获得完全不同的硬件配置、干净的设置(没有旧密码等),但软件选择相同。

问题

怎么做?

背景

软件包(每个版本)可用,但不是最新的。这样做的目的是制作正在运行的系统的一个“副本”,在计算机 B(副本)上升级软件包,测试它是否有效,如果有效,则升级 A。对于每个新的操作系统版本,我都会遇到许多回归错误,我必须更有条不紊地进行测试,而不是测试实时和恐慌。

开放SUSE 11.4

答案1

听起来您必须构建自己的存储库。

将所需版本的 RPM 放入该存储库中。然后在两台计算机上激活这些存储库(作为安装源)并安装软件包。

答案2

由于 OpenSuse 使用 RPM,因此您可以使用该rpm实用程序。

rpm -qa将列出系统上当前安装的所有软件包(一个很长的列表)。该列表包括包名称、版本号和体系结构。您可以将该列表写入一个文件,并将该文件提供给新系统上的 zypper。

有可能默认情况下已经安装了多个软件包,但 zypper 会跳过它们并安装您需要的软件包。

答案3

首先列出您尝试创建“克隆”的计算机中所有已安装的软件包及其版本:rpm -qa > /tmp/rpm.list.txt

然后将其复制/tmp/rpm.list.txt到您要尝试转换为另一个系统的“克隆”的系统,然后运行 ​​zypper 并为其提供刚刚创建的包列表:(zypper install $(cat /tmp/rpm.list.txt)或者将包含来自源系统的包列表的文件放在任何位置)。

相关内容