场景:在基于Puppet,Chef等的版本控制的系统配置中,需要重现特定的系统状态。通过显式指定系统软件包版本来完成此操作。
最近,我们遇到了一个问题,即Debian存储库中缺少某些软件包版本。一个示例:版本2.7.5-1 + deb9u1中需要“补丁程序”软件包,但仅提供2.7.5-1 + deb9u2。另一个甚至更为严重的示例:由于安装了相关的内核,因此需要“ linux-headers-4.9.0-9-common”,并且只有“ linux-headers-4.9.0-11-common”可用。
这使得不可能再现系统的特定状态。
以上软件包只是示例(我实际上遇到过)。我对理解和解决一般问题感兴趣。
这些更新,“消失”的软件包和软件包版本背后的想法是什么?
在哪里可以获得Debian软件包的先前版本(不是真正的旧版本,而是几周之久的版本)?以一般方式应该可以自动执行安装过程。
stable
至少在下一个版本发布之前保持一致。稳定更新,测试和不稳定仅包含任何给定软件包的最新版本。除此之外,您还必须查看archive.debian.org(或SK的回答中提到的snapshot.debian.org)
linux
pkg名称是一个例外:通常,Debian稳定版的软件包使用相同的软件包名称,并且仅更改版本号。linux-image-amd64
从不更改名称,始终取决于最新版本linux-image-4.9.0-*
。新的linux-image-4.9.0-*
pkg名称标记了向后移植某些错误修正所需的不兼容的内核ABI更改,并允许处理自定义构建的模块(dkms等)的必要重新编译。同样适用于linux-headers-*
。
apt-get changelog packagename