【发布时间】:2020-01-09 17:26:24
【问题描述】:
我正在考虑从现有库 (paho-mqtt-c) 创建一个 Debian 软件包。该项目使用 CMake 作为其构建系统。经过一些研究,我认为我需要创建两个或三个不同的包:
- libpaho-mqtt3(带有库 .so 文件和相关内容)
- libpaho-mqtt3-dev(带头文件)
- 也许我还需要带有示例文件或文档的第三个包(称为
paho-mqtt3?)
我做了一些研究,当我使用 CMake 作为构建系统时,似乎至少存在三种不同的方式来创建 Debian 包:
- 使用 Debian 文档 (Chapter 8) 中描述的 debmake 过程。
- 使用cmake-debhelper。
- 使用dh-cmake
我研究了所有三种方法,似乎每种方法都有一些优点和缺点。
Debmake
据我所知,使用 debmake 假设我有一个包含源代码和构建系统的上游 tarball,然后我在提取的 tarball 上调用 debmake。之后我得到了很多模板,我需要手动调整以填补缺失的空白。我开始这样做了,但它似乎很复杂。
cmake-debhelper
我尝试使用它,但收到很多错误。 github页面有一个open issue,没有解决方案,所以我不再看这个了。这也是paho-mqtt-c 构建系统当前正在使用的,但由于链接的问题,它不起作用。
dh-cmake
我对此进行了简要研究,它似乎是最现代的解决方案,应该可以将其与 CPack 结合使用。但是,似乎 dh-cmake 仅适用于 Ubuntu 18.04 和 16.04,但我使用的是 Ubuntu 19.10,因此无法在我的系统上安装 dh-cmake。
我在研究中遗漏了什么吗?从使用 CMake 管理的软件创建 Debian 软件包的推荐步骤是什么?阅读哪些文档有用?
【问题讨论】:
-
你用 CPack 试过了吗?cpack example