Last active
October 3, 2024 12:40
-
-
Save ThinGuy/21e7b3bb4b63404ad87541cd0ffebf09 to your computer and use it in GitHub Desktop.
Fix apt architecture error messages: "...doesn't support architecture 'i386'"
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# To prevent unsuppoorted architecture error messages from apt on Ubuntu 24.04 (Noble Numbat) | |
# with the new apt sources format | |
# Example error messages on `apt update` after a fresh install: | |
# N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'https://packages.microsoft.com/repos/edge stable InRelease' doesn't support architecture 'i386' | |
# N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'https://dl.google.com/linux/chrome/deb stable InRelease' doesn't support architecture 'i386' | |
################################################# | |
### SINGLE-ARCH (i.e. fix arch-related error) ### | |
################################################# | |
# Example for X86_64 (Keeping amd64, removing i386) | |
[[ $(dpkg --print-foreign-architectures) =~ i386 ]] && { sudo dpkg --remove-architecture i386; } | |
sudo sed -r -i '/^Arch/d;s/URIs:/Architectures: amd64\n&/g' /etc/apt/sources.list.d/*.sources | |
# Example for ARM64 (Keeping arm64, removing armhf) | |
[[ $(dpkg --print-foreign-architectures) =~ armhf ]] && { sudo dpkg --remove-architecture armhf; } | |
sudo sed -r -i '/^Arch/d;s/URIs:/Architectures: arm64\n&/g' /etc/apt/sources.list.d/*.sources | |
################################################# | |
### MULTI-ARCH (i.e. for cross compiling) ### | |
################################################# | |
# Supported Debian architecture names by Ubuntu release: | |
# | |
# Ubuntu 16.04 (Xenial Xerus): amd64, i386, arm64, armhf, powerpc, ppc64el, s390x | |
# Ubuntu 18.04 (Bionic Beaver): amd64, i386, arm64, armhf, ppc64el, s390x | |
# Ubuntu 20.04 (Focal Fossa): amd64, i386, arm64, armhf, ppc64el, riscv64, s390x | |
# Ubuntu 22.04 (Jammy Jellyfish): amd64, i386, arm64, armhf, ppc64el, riscv64, s390x | |
# Ubuntu 24.04 (Noble Numbat): amd64, i386, arm64, armhf, ppc64el, riscv64, s390x | |
# Ubuntu 24.10 (Oracular Oriole): amd64, arm64, i386, ppc64el, riscv64, s390x | |
# First add the architectures desired | |
for A in amd64 arm64 riscv64 do; | |
[[ $(dpkg --print-foreign-architectures) =~ ${A} ]] || { sudo dpkg --add-architecture ${A}; } | |
done | |
# NOTE: Use space-separated debian machine architecture names for multi arch | |
sudo sed -r -i '/^Arch/d;s/URIs:/Architectures:\x20amd64\x20arm64\x20riscv64\n&/g' /etc/apt/sources.list.d/*.sources | |
You can't change them, you can only remove them.
sudo apt purge ".*:i386"
Then you should be able to remove the i386 architecture.
Hey Craig, thank you for your response, but I had resolved this issue a while back. I did make use of the same command to move ahead . Thanks again🙌🏻.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The above provided solution works precise even if there were no instructions provided, like other major forums do.
I have one more problem, I am unable to remove the i386 foreign architecture because I have some databases running on that.
Using the sudo sed command did not help me
dpkg --get-selections | grep 386
using this command showedgcc-14-base:i386 install
libatomic1:i386 install
libbsd0:i386 install
libc6:i386 install
libcap2:i386 install
libd3dadapter9-mesa:i386 install
libd3dadapter9-mesa-dev:i386 install
libdrm-amdgpu1:i386 install
libdrm-dev:i386 install
libdrm-intel1:i386 install
libdrm-nouveau2:i386 install
libdrm-radeon1:i386 install
libdrm2:i386 install
libedit2:i386 install
libegl-dev:i386 install
libegl-mesa0:i386 install
libegl1:i386 install
libegl1-mesa:i386 install
libegl1-mesa-dev:i386 install
libelf1t64:i386 install
libexpat1:i386 install
libffi8:i386 install
libgbm-dev:i386 install
libgbm1:i386 install
libgcc-s1:i386 install
libgl-dev:i386 install
libgl1:i386 install
libgl1-mesa-dev:i386 install
libgl1-mesa-dri:i386 install
libgl1-mesa-glx:i386 install
libglapi-mesa:i386 install
libgles-dev:i386 install
libgles1:i386 install
libgles2:i386 install
libgles2-mesa:i386 install
libgles2-mesa-dev:i386 install
libglvnd-core-dev:i386 install
libglvnd-dev:i386 install
libglvnd0:i386 install
libglx-dev:i386 install
libglx-mesa0:i386 install
libglx0:i386 install
libicu74:i386 install
libidn2-0:i386 install
libllvm17t64:i386 install
liblzma5:i386 install
libmd0:i386 install
libopengl-dev:i386 install
libopengl0:i386 install
libosmesa6:i386 install
libosmesa6-dev:i386 install
libpciaccess-dev:i386 install
libpciaccess0:i386 install
libpthread-stubs0-dev:i386 install
libsensors5:i386 install
libssl3:i386 deinstall
libstdc++6:i386 install
libtinfo6:i386 install
libudev1:i386 install
libunistring5:i386 install
libva-x11-2:i386 install
libva2:i386 install
libvdpau1:i386 install
libvulkan1:i386 install
libwayland-client0:i386 install
libwayland-egl1:i386 install
libwayland-egl1-mesa:i386 install
libwayland-server0:i386 install
libx11-6:i386 install
libx11-dev:i386 install
libx11-xcb1:i386 install
libxatracker-dev:i386 install
libxatracker2:i386 install
libxau-dev:i386 install
libxau6:i386 install
libxcb-dri2-0:i386 install
libxcb-dri3-0:i386 install
libxcb-glx0:i386 install
libxcb-present0:i386 install
libxcb-randr0:i386 install
libxcb-shm0:i386 install
libxcb-sync1:i386 install
libxcb-xfixes0:i386 install
libxcb1:i386 install
libxcb1-dev:i386 install
libxdmcp-dev:i386 install
libxdmcp6:i386 install
libxext6:i386 install
libxfixes3:i386 install
libxml2:i386 install
libxshmfence1:i386 install
libxxf86vm1:i386 install
libzstd1:i386 install
mesa-common-dev:i386 install
mesa-va-drivers:i386 install
mesa-vdpau-drivers:i386 install
mesa-vulkan-drivers:i386 install
zlib1g:i386 install
How do I change all their architectures ?