How to fix E: Unable to correct problems, you have held broken packages (multiarch) in APT
This error occurs when apt detects held packages with unmet dependencies in a multiarch system. It typically results from installing conflicting packages from multiple architectures or interrupted updates, and can be resolved by checking held packages, using alternative package managers, or fixing broken dependencies.
Quick fix
Fixes E: Unable to correct problems, you have held broken packages (multiarch)
dpkg --print-architecture
dpkg --print-foreign-architectures- Check your system architecture and current multiarch configuration
- Identify held packages causing the issue
- Update package lists and check dependencies
- Unhold problematic packages
dpkg --print-architecturedpkg --print-foreign-architecturesE: Unable to correct problems, you have held broken packages (multiarch)
What this error means
Multiarch allows installing packages from different architectures on a single system (e.g., 32-bit i386 packages on 64-bit x86_64). When apt detects that held packages have unmet dependencies across architectures, it cannot automatically resolve the conflicts. A "held" package is one marked to prevent upgrades, and when these held packages have broken dependencies, apt cannot find a solution without violating the hold constraint. This commonly happens when different architecture versions of the same package require incompatible versions of their dependencies.
Typical symptoms
- apt-get update or installation commands fail with the multiarch error message
- Package manager unable to suggest solutions for dependency conflicts
- Installing 32-bit or foreign architecture packages causes the error
- System remains in a partially upgraded state after interrupted updates
Common causes
- Held packages with conflicting dependencies across different architectures
- Installing 32-bit i386 packages on a 64-bit system with incompatible dependencies
- Interrupted or incomplete package updates leaving the system in an inconsistent state
- Version mismatches between amd64 and i386 versions of the same library
- Third-party repositories providing packages that conflict with official repository versions
How to fix "E: Unable to correct problems, you have held broken packages (multiarch)"
First, identify your system architecture and see if multiarch is enabled:
dpkg --print-architecture
dpkg --print-foreign-architecturesThis shows your primary architecture (usually amd64) and any foreign architectures (like i386) you have enabled.
List all packages currently held by the system:
sudo apt-mark showholdThis displays which packages are preventing apt from making automatic changes. Note any packages related to the multiarch installation you attempted.
Refresh your package lists and check for broken packages:
sudo apt update
sudo apt checkThe apt check command will report any dependency issues in your system.
Release the hold on packages that are causing the conflict. Replace "package-name" with the actual package name:
sudo apt-mark unhold package-nameIf you need to unhold multiple packages, repeat this command for each one. You can also unhold all packages at once:
sudo apt-mark unhold $(apt-mark showhold)Use apt install with the fix-broken flag to attempt automatic dependency resolution:
sudo apt install --fix-brokenThis command will try to resolve unmet dependencies by installing missing packages or adjusting package versions.
If apt still cannot resolve the conflicts, try aptitude, which has a more sophisticated dependency resolver:
sudo aptitude install package-name:archWhen aptitude encounters conflicts, it will suggest alternative solutions. You can also use:
sudo aptitude why-not package-nameto understand why a package cannot be installed.
If dependency resolution fails, remove the problematic package and try again:
sudo apt remove --purge package-name:arch
sudo apt autoremove
sudo apt updateThen attempt to install a compatible version or remove the multiarch requirement.
Advanced notes
Multiarch support on Debian and Ubuntu has known limitations. Some packages, particularly older or less-maintained libraries, do not properly support multiarch cross-dependencies. When packages of different architectures require incompatible versions of the same dependency, apt and aptitude may not find a solution without removing one of the architectures. In such cases, you may need to choose between the 32-bit and 64-bit versions. Avoid mixing packages from incompatible Debian/Ubuntu releases (e.g., Sid with Stable) as this creates "FrankenDebian" systems with unresolvable conflicts. If a package is truly unavailable in multiarch, consider alternative packages or building from source with proper architecture-specific flags. The dpkg --configure -a command can sometimes help if the system is left in a broken state from interrupted installations.
Frequently asked questions
- What does "E: Unable to correct problems, you have held broken packages (multiarc" mean?
- , 32-bit i386 packages on 64-bit x86_64). When apt detects that held packages have unmet dependencies across architectures, it cannot automatically resolve the conflicts. A "held" package is one marked to prevent upgrades, and when these held packages have broken dependencies, apt cannot find a solution without violating the hold constraint.
- How do I fix "E: Unable to correct problems, you have held broken packages (multiarc"?
- This error occurs when apt detects held packages with unmet dependencies in a multiarch system. It typically results from installing conflicting packages from multiple architectures or interrupted updates, and can be resolved by checking held packages, using alternative package managers, or fixing broken dependencies.
- What causes "E: Unable to correct problems, you have held broken packages (multiarc"?
- Held packages with conflicting dependencies across different architectures Installing 32-bit i386 packages on a 64-bit system with incompatible dependencies Interrupted or incomplete package updates leaving the system in an inconsistent state
- Is the "E: Unable to correct problems, you have held broken packages (multiarc" error serious?
- It is a medium-severity error โ more of a blocker than a risk. The steps above resolve it.
Official resources & further reading
- ๐APT Official Documentation
- ๐Debian Multiarch HOWTO(Official Docs)
- ๐Debian Multiarch Cross-Dependencies(Official Docs)