Ubuntu 22.04
Today when I issue
sudo apt-get upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
unixodbc : Depends: odbcinst1debian2 (>= 2.3.11) but it is not installed
Depends: libodbc1 (>= 2.3.11) but 2.3.9-5 is installed
unixodbc-dev : Depends: odbcinst1debian2 (= 2.3.11) but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
then as suggested getting
sudo apt --fix-broken install
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Correcting dependencies... Done
The following package was automatically installed and is no longer required:
libodbccr2
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
libodbc1 odbcinst odbcinst1debian2
Suggested packages:
unixodbc-bin
The following NEW packages will be installed:
odbcinst1debian2
The following packages will be upgraded:
libodbc1 odbcinst
2 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
3 not fully installed or removed.
Need to get 0 B/607 kB of archives.
After this operation, 863 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
(Reading database ... 725562 files and directories currently installed.)
Preparing to unpack .../odbcinst_2.3.11_amd64.deb ...
Unpacking odbcinst (2.3.11) over (2.3.9-5) ...
dpkg: error processing archive /var/cache/apt/archives/odbcinst_2.3.11_amd64.deb (--unpack):
trying to overwrite '/etc/odbc.ini', which is also in package unixodbc-common 2.3.9-5
Preparing to unpack .../odbcinst1debian2_2.3.11_amd64.deb ...
Unpacking odbcinst1debian2:amd64 (2.3.11) ...
dpkg: error processing archive /var/cache/apt/archives/odbcinst1debian2_2.3.11_amd64.deb (--unpack):
trying to overwrite '/usr/lib/x86_64-linux-gnu/libodbcinst.so.2.0.0', which is also in package libodbcinst2:amd64 2.3.9-5
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Preparing to unpack .../libodbc1_2.3.11_amd64.deb ...
Unpacking libodbc1:amd64 (2.3.11) over (2.3.9-5) ...
dpkg: error processing archive /var/cache/apt/archives/libodbc1_2.3.11_amd64.deb (--unpack):
trying to overwrite '/usr/lib/x86_64-linux-gnu/libodbc.so.2.0.0', which is also in package libodbc2:amd64 2.3.9-5
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/odbcinst_2.3.11_amd64.deb
/var/cache/apt/archives/odbcinst1debian2_2.3.11_amd64.deb
/var/cache/apt/archives/libodbc1_2.3.11_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
How to get out of this hole ?
I have no problems purging any package to solve this issue. This is exactly the kind of edge case which is holding up mass adoption of linux. My gut says lay low until offending package owners push their fix upstream.
I have tried many guesses including ... to no avail ... Suggestions ?
sudo apt-get autoremove
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
unixodbc : Depends: odbcinst1debian2 (>= 2.3.11) but it is not installed
Depends: libodbc1 (>= 2.3.11) but 2.3.9-5 is installed
unixodbc-dev : Depends: odbcinst1debian2 (= 2.3.11) but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
These commands allowed me to remove the offending packages
previously the next command failed now its working
Your ouput says that you have two packages,
libodbc1
andlibodbc2
that are trying to provide the same file (libodbc.so.2.0.0
). That's bad.In other words, those two packages are incompatible. Only one of them can be installed without forcing (
--force-overwrite
). Only an experienced user (like you) should hazard forcing, and record somewhere that you did so -- uninstalling A may require reinstalling B.Inexperienced users should not try to install both using deb package. Installing one from source, or using a different package system, may be preferable.