在debian软件包名称中插入版本号

时间:2011-09-21 11:51:07

标签: version package debian packaging

我目前正在开发一个带有中央库(librapidstorm)的项目,多个插件(其中一个名为rapidstorm-fitter)和二进制而不是动态链接所有插件(rapidstorm-b​​in)。这些组件中的每一个都打包在自己的Debian软件包中,其中包含软件包名称的主要版本号,例如

  • librapidstorm12
  • rapidstorm12-插件钳工
  • rapidstorm12槽

原则上,我认为这个命名方案很有用,因为可以并行安装多个版本的librapidstorm,当依赖于librapidstorm12时,可以优雅地处理其他特定于站点的插件。

现在,由于librapidstorm12中的一些错误设计(修复起来太昂贵),librapidstorm12的ABI比Guido Westerwelle的承诺更容易被破坏,而API保持一致。这意味着,由于libtool版本的逻辑,版本号增加,这需要更改所有后续软件包名称。虽然这个更改很容易在纯源级别上处理,但必须手动/通过sed重命名Debian软件包。

我以为我可以通过替换来处理这种重命名,但是在包名中可能不会发生替换。

我试着查看具有相同问题的其他软件包(例如内核)是如何做到的,但版本号也在其控制文件中进行了硬编码。

有没有人知道根据版本号更改软件包名称的干净,Debian方式?

1 个答案:

答案 0 :(得分:1)

AFAIK,Linux shell中没有任何内容允许这样做。不久前我在重写LinkSys路由器的固件时遇到了一个非常类似的问题。最终,您将不得不花时间去了解一个为您完成此任务的自动构建工具。我是一名Java开发人员,并且虔诚地使用Apache Ant。根据您的平台,您必须找到适合您需求的工具。

这些系统中的大多数允许您指定数字版本控制架构,并且可以配置为每次部署时增加该版本。

根据您的需求,我会从make的任何现代/扩展开始。

祝你好运!

相关问题