我使用reprepro
来维护内部软件包的私有软件包档案。没有直接的方法可以使用reprepro
(请参阅这里),但它确实有一个可以工作的快照功能。
但只是有点。我看不出有什么好办法可以返回快照版本。有一个命令restore
记录在案,但它似乎不起作用(Ubuntu 12.4.1 LTS 上的 reprepro 版本 4.8.2)。
apt-get
我可以按照手册页中的描述访问快照,通过编辑sources.list
来包含类似
deb method://as/without/snapshot codename/snapshots/name main
但这意味着我需要用新的 sources.list 更新所有服务器来更改它们的快照。
我想做的是维护一个“安全”的发行版,我可以从“稳定”上的任何快照中进行配置,并且始终让服务器从“安全”中拉取。然后要进行回滚,我只需回滚“安全”并让服务器删除并重新安装软件包。(我说删除并重新安装是因为让他们只降级私有软件包而不触及公共软件包似乎太难了。)或类似的事情。
主要目标是通过一种自动化的方式让服务器场恢复到旧版本的软件包。我愿意接受建议。
人们如何处理这个问题?有没有办法让reprepro
快照按照我希望的方式工作?
答案1
我会使用 LVM 逻辑卷来支持存储库。无论如何,最好将其放在与 root 不同的文件系统上。执行此操作的步骤如下:
- 如果未安装 LVM,请安装并配置它。
- 为您的存储库创建一个逻辑卷。
- 使用选择的文件系统进行格式化。
- 安装在适当的位置。
- 将存储库移至其上。
此时,您可以通过创建逻辑卷快照轻松地对整个存储库进行快照。如果需要,您可以每晚设置滚动快照。
如果您特别大胆,可以使用 BTRFS 或 ZFS 的文件系统级快照,但目前它们在 Linux 上都不太成熟。