Ubuntu – Installing a local package to replace an already installed one

dpkginstallation

I'm trying to install a locally built .deb file that will replace an installed package.

Attempting to use dpkg -i results in this:

dabo@chrubuntu:~/Downloads/mali$ sudo dpkg -i chromium-mali-opengles_0.45-0ubuntu1_armhf.deb 
dpkg: considering removing libegl1-mesa:armhf in favour of chromium-mali-opengles:armhf ...
dpkg: no, cannot proceed with removal of libegl1-mesa:armhf (--auto-deconfigure will help):
 libegl1-mesa-drivers:armhf depends on libegl1-mesa (= 9.1.4-0ubuntu0.1)
  libegl1-mesa:armhf is to be removed.

dpkg: regarding chromium-mali-opengles_0.45-0ubuntu1_armhf.deb containing chromium-mali-opengles:armhf:
 chromium-mali-opengles conflicts with libegl1-x11
  libegl1-mesa:armhf provides libegl1-x11 and is present and installed.

dpkg: error processing chromium-mali-opengles_0.45-0ubuntu1_armhf.deb (--install):
 conflicting packages - not installing chromium-mali-opengles:armhf
Errors were encountered while processing:
 chromium-mali-opengles_0.45-0ubuntu1_armhf.deb

When I try to uninstall libegl1-mesa, it uninstalls a ton of other packages that depend on it as well.

Is there a way I can install chromium-mali-opengles_0.45-0ubuntu1_armf.deb?

The one thing I'd think of doing is using dpkg --get-selections to save all the package names, uninstalling libegl1-mesa and all of its dependencies, installing chromium-mali-opengles, and then restoring the rest of the packages with dpkg --set-selections. Would that be an incredibly bad idea?

I'm also pretty sure something like aptitude would allow me to uninstall one and install another at the same time, without uninstalling all of the packages which depend on it. Though I don't know of any way to use aptitude to do this.

I've also tried using gdebi, thinking that it might have more dependency management, but it gives the same error dpkg gives.

Best Answer

First try to resolve the problem with dependencies, then try to install it using the following command:

sudo dpkg -i -B chromium-mali-opengles_0.45-0ubuntu1_armhf.deb

From man dpkg:

-B, --auto-deconfigure
          When  a  package is removed, there is a possibility that another
          installed package depended on the  removed  package.  Specifying
          this  option will cause automatic deconfiguration of the package
          which depended on the removed package.