apt-cacher-ng:强制客户端使用本地存储库

apt-cacher-ng:强制客户端使用本地存储库

我目前管理着十几台服务器。apt-cacher-ng安装在开发服务器上以维护软件包。

这个想法是一模一样生产服务器上的包的版本和数量。

我们首先在开发服务器上进行更新/升级,然后在验证安装后(可能需要几个小时或一天),我们在生产服务器上进行同样的操作。

问题在于,在我们在开发服务器和生产服务器上进行更新之间,软件包的版本可能发生了变化,因此生产服务器不会获得相同版本的软件包。

我可以强制客户端(生产服务器)与开发服务器同步,而不是在互联网上检索较新的软件包吗?

或者,是否有任何巧妙的自动化方法来确保我的客户端与开发服务器同步?

谢谢阅读。

编辑:

找到了这个链接:debian-administration.org:克隆 Debian 系统 - 相同的软件包和版本

它部分解决了我的问题,但我仍在寻找apt-cacher-ng其他答案。

答案1

您是否尝试过将 acng 服务置于离线模式?

更新开发服务器后,添加offlinemode:1到 acng 配置文件并重新启动服务器。它仍然可以提供缓存的内容,但不会通过互联网检索任何较新的软件包。

答案2

我意识到这是一个老问题,但这是我解决这个问题的方法。

您可以在调用 call 时指定版本号apt-get install,如下所示:

apt-get install apache2=2.2.20-1ubuntu1

这将安装 的版本2.2.20-1ubuntu1apache2因此,当您设置开发服务器时,请确保指定最新版本号,这将为您提供与 相同的结果apt-get install x。但是当您转到生产环境时,请指定相同的版本号(将存储在您的ap-cacher-ng服务器中)以安装该精确版本,无论是否已发布新版本。

这个问题更多细节。

答案3

只需创建一个偏好配置 dev-dep-pin.conf/etc/apt/preferences.d生产服务器和开发服务器上仅锁定版本重要的依赖包(否则自动更新毫无意义,对吧?)。您可以明智地使用策略条件来创建效果最佳的锁定方案。

scp/rsync在您需要通过 apt-update/apt-upgrade/apt-install 在生产服务器和开发服务器之间同步软件包之前,请在开发服务器和生产服务器之间复制该文件。

这样,您可以让生产服务器自由地自动更新系统包,同时维护依赖树中重要包的版本与开发服务器的配置完全相同。

在安装期间指定版本不能保证软件包在未来的更新/安装中不会发生变化(因为依赖于其他软件包)。固定是为了使其持久。

相关内容