我们有一个产品想要安装在基于 AMD64/x86 的 Ubuntu 服务器和基于 ARM 的 Ubuntu 服务器上。我们将我们的产品打包为 deb 包。所以我需要创建一个可以在AMD64和ARM64上安装的deb包。我确实参考了https://wiki.ubuntu.com/MultiarchSpec。
Architecture我开始在我的包( )控制文件中使用通配符all" ...(我也尝试过any):
Package: my-package
Version: X.Y.Z
Architecture: all
...
Run Code Online (Sandbox Code Playgroud)
因此,我创建了一个 deb 包并尝试将其安装在目标服务器上。
然而,我意识到我的包没有被apt包管理器识别。我想这是因为 deb 包使用的通配符不在dpkg. 所以我尝试使用以下dpkg命令添加架构通配符:
# add foreign architectures
dpkg --add-architecture all
Run Code Online (Sandbox Code Playgroud)
然而,这给了我一个错误(请参阅 针对 dpkg --add-architecture 错误发布的另一个具体问题) - 但基本上我放弃了它
出于绝望,我添加了“ALL”,这样我就可以成功添加 . 然而,这(如预期的那样)给了我一个错误,因为通配符“ALL”无效并且不等于“all”我得到的错误如下
# apt update
...
N: Skipping acquire of configured file
'restricted/binary-ALL/Packages' as repository
'http://ports.ubuntu.com/ubuntu-ports focal-
updates InRelease' doesn't support architecture
'ALL' …Run Code Online (Sandbox Code Playgroud)