-
-
Save ThinGuy/21e7b3bb4b63404ad87541cd0ffebf09 to your computer and use it in GitHub Desktop.
# 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 | |
ThinGuy
commented
May 1, 2024
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 showed
gcc-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 ?