0

I just created a simple .deb package (using this tutorial). This is my control file:

Package: bla
Version: 1.0
Architecture: x86_64
Maintainer: bla
Description: bla

The Architecture I got from uname -m: x86_64, however, dpkg-deb broke due to _ being an invalid char, so I changed to - which worked but broke on the installation phase:

dpkg: error processing archive bla_x86_64.deb (--install):
 package architecture (x86-64) does not match system (amd64)

So I turned to use amd64 as my architecture, and voila!

Now I just don't understand this mismatch in architectures between uname -m and dpkg...

CIsForCookies
  • 195
  • 2
  • 12

1 Answers1

3

For historical reasons, the 64-bit x86 architecture in Debian is amd64. The kernel identifies itself as x86-64 but Debian packages specify amd64.

Other architectures have different names depending on context too, e.g. arm64 instead of aarch64. The architecture specifics memo on the Debian wiki gives all the details.

See also Why are 64-bit distros often called 'amd64'?

Stephen Kitt
  • 411,918
  • 54
  • 1,065
  • 1,164
  • Does this phenomena happen in other architectures as well? – CIsForCookies Sep 05 '21 at 11:36
  • Yes, Debian has specific names for each architecture, and they might not match what one might expect, or the kernel’s name for the arch, or the evolution of the architecture (*e.g.* `i386` which is really `i686` now). – Stephen Kitt Sep 05 '21 at 11:37