我正在尝试在 VM 中设置一个临时环境,以便在将更新应用到我的主系统之前对其进行测试。
为此,我在 VM 中完成了 Debian Wheezy 的基本安装(与主系统相同),然后在 VM 中以 root 身份运行:
# dpkg --clear-selections
# dpkg --add-architecture i386
# apt-get update
# ssh me@main-system 'dpkg --get-selections | grep -v deinstall' | \
dpkg --set-selections
Run Code Online (Sandbox Code Playgroud)
不幸的是,在我的情况下需要 i386 架构;系统是 amd64 原生的。
问题在于dpkg --set-selections在 VM 中运行。我确实有一些需要特殊处理的包(这些实际上是我首先想要一个暂存环境的主要原因)但是当我运行上面的最后一个命令时,我得到了无数行输出,例如:
dpkg: warning: package not in database at line NNN: package-name
Run Code Online (Sandbox Code Playgroud)
对于真正应该在基本系统中可用的包。示例包括xterm、yelp和zip。
现在我的问题:
将软件包选择列表从一个 Debian 系统转移到另一个系统(假设 Debian 发行级别相同,在 Wheezy 中)然后随后应用这些更改的具体过程是什么?目标是两者都具有相同的已安装软件包列表,理想情况下,在diff两者的输出之间dpkg …
我已经将一个 debian 实例与 apt 作为安装了许多软件包的软件包管理器放在一起。我想在另一个没有互联网连接的系统上安装这些相同的软件包。有没有一种简单的方法来生成我已安装的软件包列表,按依赖项排序,获取软件包的 .deb 以便我可以在另一台计算机上安装?
我的目标也是能够通过重新生成包列表和 .deb 文件并使用它来进行更新来更新另一台计算机。