minikube: minikube_1.16.0-0_amd64.deb: package architecture (arm64) does not match system (amd64)

Steps to reproduce the issue:

  1. Download amd64 debian package of latest release: https://github.com/kubernetes/minikube/releases/download/v1.16.0/minikube_1.16.0-0_amd64.deb
  2. Inspect the package file
  3. It’s marked as an arm64 package not an amd64 package
  4. It has stray files in it that are clearly not meant to be there

Full output of failed command:

$ dpkg --info minikube_1.16.0-0_amd64.deb ; dpkg --contents minikube_1.16.0-0_amd64.deb 
 new Debian package, version 2.0.
 size 20578594 bytes: control archive=389 bytes.
     381 bytes,    11 lines      control              
 Package: minikube
 Version: 1.16.0
 Section: base
 Priority: optional
 Architecture: arm64
 Maintainer: Thomas Strömberg <t+minikube@stromberg.org>
 Description: Minikube
  minikube is a tool that makes it easy to run Kubernetes locally.
  minikube runs a single-node Kubernetes cluster inside a VM on your
  laptop for users looking to try out Kubernetes or develop with it 
  day-to-day.
drwxr-xr-x root/root         0 2020-12-17 18:41 ./
drwxr-xr-x root/root         0 2020-12-17 18:41 ./minikube_deb_template/
drwxr-xr-x root/root         0 2020-12-17 18:41 ./minikube_deb_template/DEBIAN/
-rw-r--r-- root/root       416 2020-12-17 18:41 ./minikube_deb_template/DEBIAN/control
drwxr-xr-x root/root         0 2020-12-17 18:41 ./usr/
drwxr-xr-x root/root         0 2020-12-17 18:41 ./usr/bin/
-rwxr-xr-x root/root  57925077 2020-12-17 18:41 ./usr/bin/minikube

Note: Architecture: arm64 and ./minikube_deb_template/... in the contents.

However the actual binary contained within is an amd64 one:

# extract the contents of the package
$ file minikube
minikube: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, Go BuildID=6LZF01FcZrGBprW2lwYI/gWzE5fRYw4NT_meHguiF/54zHaIwKVnjc2RZCfg6t/T0VXjXYTfvHZFrWQslv4, not stripped

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 5
  • Comments: 20 (11 by maintainers)

Commits related to this issue

Most upvoted comments

This is only an error in the manifest. With :

sudo dpkg -i --force-architecture minikube_1.16.0-0_amd64.deb

This works fine.

Oops, missed that, sorry!

@mgabeler-lee-6rs You should re-open this:

quoting @tstromberg https://github.com/kubernetes/minikube/issues/9995#issuecomment-748182803:

We’ll leave this issue open until the Makefile can be updated so that this build corruption issue cannot occur again.

Was able to download & install the fixed release and restart my local minikube environment with the new version. Thanks! 👍

It took a bit of surgery to post a new Debian package without mucking with the checksum of the minikube binary, but:

Build:

git checkout tags/v1.16.0
 curl -L https://github.com/kubernetes/minikube/releases/download/v1.16.0/minikube-linux-amd64 > out/minikube 
make -e DEB_VERSION=1.16.0 -e DEB_REVISION=1 out/minikube_1.16.0-1_amd64.deb

Propagate:

gsutil cp out/minikube_1.16.0-1_amd64.deb gs://minikube/releases/latest
gsutil cp out/minikube_1.16.0-1_amd64.deb gs://minikube/releases/latest/minikube_latest_amd64.deb 
gsutil cp out/minikube_1.16.0-1_amd64.deb gs://minikube/releases/v1.16.0/

Then uploaded manually to GitHub releases:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_1.16.0-1_amd64.deb
<drag file to GitHub release>

I wonder if it’s due to running both commands in the same directory?

You are right, there is a race condition where they both create their temporary dir at out/minikube_1.16.0/.