在 debian 包名称中插入版本号

发布于 2024-12-05 11:14:12 字数 703 浏览 0 评论 0原文

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

  • librapidstorm12
  • rapidstorm12-plugin-fitter
  • rapidstorm12-bin

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

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

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

我试图查找具有相同问题的其他软件包(例如内核)是如何做到这一点的,但是版本号也被硬编码在它们的控制文件中。

有谁知道根据版本号更改软件包名称的干净的 Debian 方法?

I am currently working on a project with a central library (librapidstorm), multiple plugins (one of them named rapidstorm-fitter) and a binary than dynamic-links all plugins together (rapidstorm-bin). Each of these components is packaged in its own Debian package with the major version number of the library in the name of the package, e.g.

  • librapidstorm12
  • rapidstorm12-plugin-fitter
  • rapidstorm12-bin

In principle, I think this naming scheme is useful because multiple versions of librapidstorm can be installed in parallel and additional, site-specific plugins are handled gracefully when they depend on librapidstorm12.

Now, due to a few misdesigns in librapidstorm12 (which are too expensive to fix) the ABI of librapidstorm12 is broken more often than Guido Westerwelle's promises, while the API stays consistent. Which means, due to the logic of libtool versions, that the version number increases, which entails a change in all the subsequent package names. While this change is easy to handle on the pure source level, the Debian packages must be renamed manually/by sed.

I thought I could handle this renaming via substitutions, but substitutions may not occur in package names.

I tried to look up how other packages with the same problem (e.g. kernel) do it, but the version number is hard-coded in their control files, too.

Does anyone know a clean, Debian way of changing the package name according to the version number?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

相权↑美人 2024-12-12 11:14:12

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

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

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

祝你好运!

AFAIK, there is nothing in the Linux shell that allows this. I ran into a very similar problem some time ago when I was re-writing a LinkSys router's firmware. Ultimately, you'll have to invest the time to get to know an automated build tool that does this for you. I'm a Java developer, and use Apache Ant religiously. Depending on your platform, you'll have to find a tool that suits your needs.

Most of these system allow you to specify a numeric versioning schema, and can be configured to increment that version every time you deploy.

Based on your needs I would start with any modern/extensions of make.

Good luck!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文