将大包拆分为多个小包/为用户提供升级路径?

将大包拆分为多个小包/为用户提供升级路径?

我维护了几个我们内部使用的大型软件包,从下一个版本开始,我想将它们拆分成较小的软件包。这些软件包已经通过我们的自定义 apt 存储库安装在许多机器上,我不确定那些已经安装了这些大型软件包的人的升级路径是什么。

为了说明这个问题:

packageX目前有多少台机器安装了大包

我想将其拆分成:

  • 软件包X-foo
  • 包裹X-bar
  • 包X-baz

我想,明智的做法是创建一个名为的虚拟包,packageX将所有新包封装起来,这听起来对吗?

我如何确保apt-get update && apt-get upgrade不会给用户带来麻烦?

谢谢。

答案1

是的,制作packageX一个依赖于其他包的虚拟包是处理此问题的常用方法。

这样,现在安装的每个人都可以在升级后packageX获得所有软件包。此外,对于那些需要安装所有 packageX 的人来说,这还很方便。packageX-*

根据您的软件,可能值得考虑创建依赖于 packageX-* 的常用子集的附加虚拟包,以简化这些子集的安装。

答案2

  1. packageX应该Depends: packageX-foo, packageX-bar, packageX-baz。这确保升级会自动获取每个单独的新软件包。
  2. 每个都packageX-component应该:Breaks: packageX (<< V)以及新版本在Replaces: packageX (<< V)哪里V。这确保包管理器知道新组件包中的文件与旧单片包中的文件冲突。

相关内容