Binary 如何为几种体系结构创建二进制Debian包?

Binary 如何为几种体系结构创建二进制Debian包?,binary,debian,packages,cpu-architecture,Binary,Debian,Packages,Cpu Architecture,我正在尝试为一些机器人控制器代码创建包,这些代码将支持不同的体系结构,例如i386和armhf(用于Raspberry Pi)。我不知道Debian打算怎么做。有没有办法创建一个包含两个二进制文件的.deb包?或者我必须为每个架构创建一个单独的.deb包,我知道怎么做吗 在后一种情况下,如果我给这两个包指定了相同的包名,我就不能将它们都放在同一个存储库中,但是如果它们有不同的名称,用户就必须使用apt-get指定要安装的包。这个问题有解决方案吗?除非您要打包的内容是解释的而不是编译的,否则您需要

我正在尝试为一些机器人控制器代码创建包,这些代码将支持不同的体系结构,例如i386和armhf(用于Raspberry Pi)。我不知道Debian打算怎么做。有没有办法创建一个包含两个二进制文件的.deb包?或者我必须为每个架构创建一个单独的.deb包,我知道怎么做吗


在后一种情况下,如果我给这两个包指定了相同的包名,我就不能将它们都放在同一个存储库中,但是如果它们有不同的名称,用户就必须使用apt-get指定要安装的包。这个问题有解决方案吗?

除非您要打包的内容是解释的而不是编译的,否则您需要为不同的体系结构提供不同的二进制软件包

如果您正在制作的包与所有体系结构兼容,那么
debian/control
文件的
Architecture:
字段必须是
any
。这告诉您,该包可以在任何Debian支持的体系结构中构建。然后您只需编译它,并将其交叉编译为i386和armhf


关于你的第二个问题,你可以。事实上,官方Debian存储库就是这样做的。二进制软件包在包含体系结构的文件名中有一个后缀。看这个。用户安装软件包时,不需要指定体系结构,因为它会自动检测到。

这很有效。注意:下一步:要成功地为存储库创建Packages.gz索引文件,必须使用dpkg scanpackages的-m选项。否则它只列出一个包。这个后缀添加到哪里?Debild是否自动执行此操作?