The "no installation candidate" error for i386 packages occurs when apt cannot find a suitable version of a 32-bit package due to multiarch not being enabled, missing repositories, or version conflicts. Enable i386 support and update your package cache to resolve this.
This error appears when apt finds a package matching your query but cannot locate any installable version for the i386 architecture. Unlike "Unable to locate package," this error means apt recognizes the package name but has no candidate version available for installation on your system. This typically occurs on 64-bit systems where 32-bit (i386) architecture support has not been enabled, or where the requested package does not have a version available for the i386 architecture in your configured repositories. The error can also occur when multiarch is enabled but the package version for i386 is incompatible with currently installed packages.
First, register i386 as a supported architecture on your system:
sudo dpkg --add-architecture i386Verify the architecture is now enabled:
dpkg --print-foreign-architecturesYou should see "i386" in the output. If you see nothing, the previous command had an issue.
Refresh the apt package cache to include i386 packages from all repositories:
sudo apt updateWatch for any error messages about unsupported architectures. If you see warnings like "repository does not support i386", you'll need to fix those repository configurations in the next step.
Some repositories may explicitly restrict packages to amd64. Check your sources:
grep -r "arch=" /etc/apt/sources.list*If you see entries restricted to amd64 only, like:
deb [arch=amd64] http://example.com/ubuntu focal mainEdit the file to include i386:
sudo nano /etc/apt/sources.listChange to:
deb [arch=amd64,i386] http://example.com/ubuntu focal mainFor sources in /etc/apt/sources.list.d/*.sources, add Architectures: amd64 i386 under the Sources section.
After editing, run:
sudo apt updateVerify the package actually exists for i386:
apt-cache search package-name | grep i386
apt-cache policy package-name:i386The policy output shows all available versions and their source repositories. If no i386 version is listed, the package may not be available for 32-bit systems in your repositories.
Once i386 is enabled and package lists are updated, install the package:
sudo apt install package-name:i386For example, to install 32-bit libc6:
sudo apt install libc6:i386If you encounter dependency conflicts, apt will suggest solutions. You may need to install matching amd64 versions or update other packages.
If the package truly has no installation candidate even after enabling multiarch, the issue may be that the package doesn't provide an i386 build. Check the package's official repository or documentation to confirm i386 support. Some packages are amd64-only by design. For multilib issues on systems with version conflicts, use apt-get install -s package:i386 to simulate the installation and see detailed conflict information. On newer systems using DEB822 format sources (.sources files), ensure the Architectures field includes both amd64 and i386. If you're building your own packages or using a custom repository, verify the architecture metadata is correctly set.
E: Could not connect to proxy server
Could not connect to proxy server
E: The value 'value' is invalid for APT::Default-Release
How to fix invalid APT::Default-Release value in APT
dpkg: error: unable to create new file 'path': Permission denied
How to fix dpkg permission denied errors in APT
subprocess installed post-removal script returned error exit status 1
How to fix "subprocess installed post-removal script returned error exit status 1" in APT
dpkg: error processing package package-name (--install)
How to fix "dpkg: error processing package" in apt