我有一个私人 Debian 存储库设置,其中包含一些自定义构建的软件包(以及其他官方 Debian 软件包)。我的所有机器(仅)在/etc/apt/sources.list
.我想知道是否有办法将某些包提供给某些机器。
例如 - machine1 应该能够连接到存储库,但应该只能下载 package1 和 package2。即使存储库中有新版本,machine2 也不应该能够升级 package1。
我知道如何在客户端执行上述操作 - 通过在 machine1 和 machine2 上运行(或不运行)适当的命令。我想自动执行此操作 - 我计划在这些计算机上运行一个 cronjobapt-get update && apt-get upgrade
每天一次,但只应安装/升级适用于它们的软件包。
我在网上查了好几个星期,但找不到任何有用的东西。这可行吗?
答案1
您无法使用单个存储库来执行此操作,因为包索引(文件Packages
)对于所有客户端都是通用的。好吧,实际上,如果您动态提供包索引(例如使用 CGI 或其他服务器脚本),则可以。但我认为没有任何现成的工具,你必须编写自己的生成器(注意,它不会很复杂)。
最简单的方法是将每组单独可用的包放入其自己的存储库中,并允许每个客户端仅访问包含它们必须能够访问的包的存储库。