我想做两件事情:
首先,我想在我的服务器上拥有自己的ubuntu存储库,以避免在我的公司使用互联网,并控制更新。 我认为我必须使用apt-mirror
而且我想将我自己的软件包添加到存储库。
做这个的最好方式是什么?
我必须有两个存储库吗? 一个与镜子,另一个与我的包? 如果与我的软件包有冲突,Ubuntu如何解决这个问题?
谢谢
我必须为我的基于AWS的设置做一些非常类似的事情。 我决定使用aptcacher-ng
和dpkg-dev软件包。
reprepro
不支持多个版本的软件包,所以我没有使用它。 由于我想保持这些盒子尽可能短暂的安装时间低,我没有使用apt-mirroring,因为它可以下载大量的数据,取决于你想要镜像。
Aptcacher ngcaching包,这个盒子是由所有其他的盒子适应他们的需要,所以我最终节省了大量的时间和带宽。
是的,如果您这样做,您将需要使用两个单独的回购协议 – 镜像将保持由发行版的GPG密钥签名,而具有自定义软件包的回购将由您生成的GPG密钥(以及您的节点将需要信任)。
镜像的替代方法是apt-cacher-ng
– 它在您的节点上configuration为一个apt代理,并将处理所有包请求。 在给定包的第一个请求,它会从上游的互联网回购下载一个包; 在随后的请求中,它将从caching中提供该包。 所以你可以节省本地镜像的带宽,而不必保留整个repo的拷贝(80%,如果你永远不会使用的话)。
对于自定义软件包的内部回购,使用reprepro
– 它将处理所有文件结构和签名,您只需要设置GPG密钥并提供.deb文件。
对于包冲突,客户端系统将决定使用哪一个 – 通常,这是通过比较两个不同包上的版本string来完成的,但也可能受到固定的影响。