我正在尝试为一些支持不同架构的机器人 Controller 代码创建包,例如 i386 和 armhf(用于 Raspberry Pi)。我不知道 Debian 打算如何做到这一点。有没有办法创建一个包含两个二进制文件的 .deb 包?或者我必须为每个体系结构创建一个单独的 .deb 包,我知道该怎么做?
在后一种情况下,如果我给两个包相同的包名,我不能将它们放在同一个存储库中,但如果它们有不同的名称,用户将必须指定他们想要安装的包使用容易得到。这个问题有解决办法吗?
最佳答案
您需要为不同的体系结构提供不同的二进制包,除非您打包的内容是解释的而不是编译的。
如果您制作的软件包与所有架构兼容,那么 debian/control
文件的 Architecture:
字段必须是 any
。这告诉您该软件包可以构建在任何 Debian 支持的架构中。然后您只需编译它并将其交叉编译为 i386 和 armhf。
关于你的第二个问题,你可以。事实上,官方 Debian 存储库就是这样做的。二进制包在包含体系结构的文件名中有一个后缀。看这个example .当用户安装您的包时,他们不需要指定架构,因为它会自动检测到。
关于binary - 如何为多种架构创建二进制 Debian 软件包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21038270/