使用reprepro快照启用回滚

我正在使用reprepro来维护内部软件包的私有包存档。 没有一个简单的方法可以使用reprepro来保持一个包的多个版本(见这里 ),但是它有一个快照工具。

但只有一些。 我没有看到回到快照版本的好方法。 有一个命令restorelogging,但它似乎并没有工作(在Ubuntu 12.4.1 LTS的reprepro版本4.8.2)。

我可以通过apt-get访问快照,如手册页中所述,通过编辑sources.list来包含类似内容

 deb method://as/without/snapshot codename/snapshots/name main 

但这意味着我需要用新的sources.list来更新所有服务器来更改它们的快照。

我想做的是保持一个“安全”的分布,我可以从任何“稳定”快照configuration,并始终从“安全”拉动服务器。 然后做回滚,我只是回滚“安全”,并让服务器删除并重新安装软件包。 (我说删除并重新安装,因为它似乎太难让他们降级只是私人包未触摸公共包),或类似的东西。

主要目标是有一个自动的方法来让服务器场恢复到旧版本的软件包。 我接受build议。

人们如何处理这个问题? 有没有办法让reprepro快照按照我喜欢的方式工作?

我会通过使用支持存储库的LVM逻辑卷来实现这一点。 不pipe怎样,最好把它放在一个单独的文件系统上。 步骤如下:

  1. 如果LVM未安装,请进行安装和configuration。
  2. 为您的存储库创build一个逻辑卷。
  3. 格式select文件系统。
  4. 安装在适当的位置。
  5. 将存储库移到它上面。

此时,您可以通过创build逻辑卷快照来轻松快照整个存储库。 如果需要,您可以每晚设置滚动快照。

如果您觉得特别大胆,可以使用BTRFS或ZFS的文件系统级快照,但是目前在Linux上这些都不太成熟。

  • 参考资料: http : //www.tldp.org/HOWTO/LVM-HOWTO/
  • 不太详细的指南: http : //www.thegeekstuff.com/2010/08/how-to-create-lvm/