我正在build立一个apt库来pipe理我构build的服务器的依赖关系。 我这样做是因为我希望能够一次又一次地重复构build完全相同的服务器。
肯定有工具( apt-get )来分析正在运行的系统,并下载满足特定要求的软件包。 例如,这正是我运行时发生的情况
sudo apt-get install --download-only vim
在这种情况下, apt-get分析系统的状态并下载在我的系统上安装vim所需的软件包。
我正在寻找一个类似的工具,让我下载包添加到我自己的apt库。 它应该对apt-get在我的系统上执行相同types的存储库依赖关系分析,只下载不在存储库中的软件包。 所以,当我运行apt-get install ...在指向我的存储库的系统上,它将能够安装包及其所有的依赖关系。 是否有任何工具可用于分析我的存储库中已有的软件包,然后下载所需的其他软件包?
正如@Andrea De Palo所说,理论上你可以使用puppet,在安装master distro之后,运行puppet resource package ,它将列出所有已安装的软件包的版本等。
之后,只需创build一个列出所有软件包的模块。 另外你也可以用puppet来定制configuration文件等
值得一试。
我有一个微不足道的Makefile,我用它来做这件事,但是这里的shell是一样的:
#!/bin/bash rm -f Release* Packages* new-release dpkg-scanpackages . /dev/null > Packages gzip -c -9 <Packages >Packages.gz apt-ftparchive release . > new-release mv new-release Release gpg -abs -o Release.gpg Release
如果您不想签署存储库,则不需要GPG步骤,但是这样做的努力是最小的(现在备用configuration更改为禁用签名检查,因此您需要执行某些操作)。
然后,您可以参考客户端/etc/apt/sources.list中的目录,如下所示:
# Local directory deb file:///var/local/debs ./ # Via http(s) deb http://foo.bar.com/debian ./
HTTPS可以是一个很好的方式来允许从全球的服务器更新而不需要VPN,我以前的工作是在我们木偶部署的CA上进行的,所以它是完全自动的。
我从来没有用过它,不确定它是否适合您的需求。 但是你可能会对http://wiki.debian.org/DebPartialMirror感兴趣
使用Puppet来自动pipe理包裹怎么样?