I just upgraded to Ubuntu xenial, 16.04. When I try to do apt-get, I get the error
apt-get: relocation error: /usr/lib/i386-linux-gnu/libapt-pkg.so.5.0: symbol [long symbol omitted] version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference
I tried solutions at apt: relocation error: version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference:
wget http://security.ubuntu.com/ubuntu/pool/main/g/gcc-5/libstdc++6_5.4.0-6ubuntu1~16.04.10_amd64.deb
sudo dpkg -i libstdc++6_5.4.0-6ubuntu1~16.04.10_amd64.deb
but the system complains this is going back to an old version of libstdc++6:
dkpg: warning: downgrading libstdc++6:i386 from 8.1.0-5ubuntu1!14.04 to 5.4.0-6ubuntu~16.04.10
and refuses to continue because libstdc++6:i386 break libkolabxml1
.
That page also suggests using ppa-purge
(but it's not installed) and apt-add-repository
(but apt
isn't working).
I have also tried installing aptitude
itself, the xenial version for i386. It complains that it needs libcwidget3v5
and libsigc++-2.0-0v5
. But it can't install these because it breaks dependencies if it tries.
When I've run across a mess of dependencies like this before, it turned out I had something at the top level that was of the wrong sort.
What's the fix? I'd imagine if I can get apt
working, I can get other things repaired. I'd be willing to run the upgrade process again, but do-release-upgrade
fails because it can't use apt
.
Some further requested detail.
Output of dpkg --print-architecture
: i386
Output of dpkg --print-foreign-architecture
: [no output]
Output of ldd /usr/lib/i386-linux-gnu/libapt-pkg.so.5.0 | grep local
: [no output]
Output of ldd /usr/lib/i386-linux-gnu/libstdc++.so.6 | grep local
: [no output]
dpkg --print-architecture
anddpkg --print-foreign-architectures
ldd /usr/lib/i386-linux-gnu/libapt-pkg.so.5.0 | grep local
andldd /usr/lib/i386-linux-gnu/libstdc++.so.6 | grep local
to the question.pkconf refresh
andpkcon get-updates
alsopkcon repo-list
maybe this way we get an overview.echo $LD_LIBRARY_PATH
and see the track of dependsldd /usr/bin/apt-get
.