How to fix Breaks: package-name but version is to be installed in APT

APTINTERMEDIATEMEDIUMUpdated Dec 29, 2025ยท 151 views

This error occurs when apt detects a package conflict where a package "breaks" (is incompatible with) another package that is currently being installed. It typically happens with version mismatches in multiarch systems or when different package versions have incompatible dependencies, and can be resolved by installing matching versions or using aptitude for smarter conflict resolution.

Quick fix

Fixes Breaks: package-name but version is to be installed

sudo apt update
  1. Update package lists and check the current package state
  2. Check available versions of the conflicting packages
  3. Install matching versions of both packages
  4. Use aptitude for smarter dependency resolution
apt โ€” error
sudo apt update
Breaks: package-name but version is to be installed

What this error means

The "Breaks" relationship in Debian/Ubuntu packages specifies that a package is fundamentally incompatible with specific versions of another package. When apt attempts to install a package that has a "Breaks" declaration against an already-installed package, it refuses to proceed because the installation would create an unstable system state. This is a safety mechanism that prevents incompatible packages from coexisting. The error message indicates that the version of the package you are trying to install "breaks" the package that is currently installed, and apt cannot resolve this without either upgrading the broken package to a compatible version or removing one of them.

Typical symptoms

  • apt install or apt upgrade fails with the "Breaks: package-name but version is to be installed" message
  • Package installation is blocked even though dependencies appear to be available
  • Multiarch (32-bit and 64-bit) package installations fail with breaks conflicts
  • Upgrading a package fails because it would break an already-installed package
  • Different versions of the same package (e.g., amd64 and i386) are incompatible

Common causes

  1. Attempting to install a package version that is declared incompatible with an already-installed package
  2. Version mismatch in multiarch systems where amd64 and i386 versions of the same package require different dependency versions
  3. Third-party repositories providing packages with conflicting "Breaks" declarations against official packages
  4. Partial or interrupted upgrades leaving the system with incompatible package versions
  5. Installing multiple architectures of the same package without ensuring compatible versions across architectures

How to fix "Breaks: package-name but version is to be installed"

1Update package lists and check the current package state

Start by updating your package lists to ensure you have the latest information:

bash
sudo apt update

Then check what version of the conflicting package is currently installed:

bash
apt show package-name
apt show package-name:arch

Replace "package-name" with the actual package name and "arch" with the architecture (e.g., i386, amd64) if applicable.

2Check available versions of the conflicting packages

View all available versions of both the package you want to install and the package that is already installed:

bash
apt policy package-name
apt policy other-package-name

This will show you which versions are available and which one is currently installed. Look for versions that might be compatible.

3Install matching versions of both packages

Try installing both packages with specific versions that are compatible. First, find a version of the breaking package that does not conflict:

bash
sudo apt install package-name=1.2.3 other-package-name=4.5.6

Replace the version numbers with actual versions from your apt policy output. If both packages are available in compatible versions, apt should allow the installation.

4Use aptitude for smarter dependency resolution

If apt fails to resolve the conflict, try aptitude, which has a more sophisticated conflict resolver:

bash
sudo aptitude install package-name

When aptitude encounters a conflict, it will suggest alternative solutions. You can accept the suggested solution by pressing "y" or explore other options. Aptitude may suggest upgrading the conflicting package to a compatible version, which apt would not consider.

5In multiarch systems, ensure both architectures are compatible

If you are working with multiarch packages (e.g., both amd64 and i386 versions), ensure both versions are compatible:

bash
sudo apt install package-name:amd64=VERSION-A package-name:i386=VERSION-B

Make sure VERSION-A and VERSION-B are versions that do not break each other. Check the package metadata to see if the breaks declaration is version-specific.

6Remove the conflicting package and reinstall if necessary

If no compatible version exists, you may need to remove the conflicting package and reinstall both packages from scratch:

bash
sudo apt remove --purge package-name other-package-name
sudo apt autoremove
sudo apt install package-name other-package-name

This ensures a clean installation without version conflicts. Only use this approach if compatible versions cannot be found.

7Check for held packages that may be preventing upgrades

Some packages may be held (marked to prevent automatic updates), which can contribute to breaks conflicts:

bash
sudo apt-mark showhold

If the conflicting packages are held, unhold them to allow upgrades:

bash
sudo apt-mark unhold package-name

Then retry the installation or upgrade.

Advanced notes

The "Breaks" relationship is stricter than "Conflicts" in Debian packaging. While Conflicts allows dpkg to replace the old package with the new one, Breaks prevents installation entirely unless the breaking package explicitly replaces the broken one. This is why apt refuses to proceed. In multiarch systems, version compatibility is critical because both the amd64 and i386 versions of a package often share libraries through the dependency tree. If their breaks declarations are incompatible, apt cannot satisfy both architectures simultaneously. When investigating breaks conflicts, examine the package metadata using "apt show" or check the Debian package database at packages.debian.org to understand the exact version constraints. Sometimes, waiting for a newer version of the conflicting package to be released will resolve the issue. In enterprise environments with held packages or custom repositories, breaks conflicts are more common and may require pinning specific versions in /etc/apt/preferences or /etc/apt/preferences.d/ to maintain system stability.

Frequently asked questions

What does "Breaks: package-name but version is to be installed" mean?
The "Breaks" relationship in Debian/Ubuntu packages specifies that a package is fundamentally incompatible with specific versions of another package. When apt attempts to install a package that has a "Breaks" declaration against an already-installed package, it refuses to proceed because the installation would create an unstable system state. This is a safety mechanism that prevents incompatible packages from coexisting.
How do I fix "Breaks: package-name but version is to be installed"?
This error occurs when apt detects a package conflict where a package "breaks" (is incompatible with) another package that is currently being installed. It typically happens with version mismatches in multiarch systems or when different package versions have incompatible dependencies, and can be resolved by installing matching versions or using aptitude for smarter conflict resolution.
What causes "Breaks: package-name but version is to be installed"?
Attempting to install a package version that is declared incompatible with an already-installed package Version mismatch in multiarch systems where amd64 and i386 versions of the same package require different dependency versions Third-party repositories providing packages with conflicting "Breaks" declarations against official packages
Is the "Breaks: package-name but version is to be installed" error serious?
It is a medium-severity error โ€” more of a blocker than a risk. The steps above resolve it.

Official resources & further reading