Unmet dependencies - cannot remove package libgbm1
In this case I have the libgbm1
being held, giving me message like:
Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
Since I carefully read How do I resolve unmet dependencies after adding a PPA? I tried to remove the broken package with sudo apt-get remove libgbm1
as suggested. However, remove command gave me the same error.
sudo apt-get upgrade
doesn't upgrade this package ("...and 1 not upgraded."
). And I need this one to build some other packages that depends on it (pkgProblemResover
problem again). It seems I cannot revert the version nor move forward.
Steps I've ever tried:
- disabling some ppa repositories in
software updates
andsudo apt-get update
then tried to fix with apt, which didn't work. -
sudo apt-get -f install
withand 1 not upgraded
. - tried to install packages that
libgbm1
depends on. But more packages coming forward and quickly piles up to tens of them, which seems unreliable to handle, and they also reported similar errors.
Why couldn't I remove the package? How to fix it?
The problem here is to lock down the trouble maker package and kick it out. Then you can fix inconsistent dependencies with sudo apt-get -f install
.
So with cautious you may use: sudo dpkg --force-all -P libgbm1
to force removing the broken. This command may damage your system, so you should watch it. And try to fix: sudo apt-get -f install
.
If any packages are corrupting as well, repeat above steps cautiously. And each time you removed broken packages, try to fix them. I tackled my problem in this case.
Instead of rushing to remove your broken packages using the --force-all
option of dpkg
, first try removing it without this option, using simply
dpkg -P package-name
In my case, dpkg
printed why it couldn't remove this package: another package depended on it. After I removed the dependee, the broken package could finally be removed, without any --force-anything
.
This may require several recursive removals in case when the dependee is also broken, but the end result should be fixing the dependency chain, which apt
was unable to fix, by removals.