undefined symbol: lame_encode_buffer_interleaved_int
I use a Debian unstable installation as my daily driver. That does sometimes come with pains when doing
apt-get upgrade. Like today. After upgrading and rebooting, suddenly (almost) everything that had to do with sound was broken. Pulseaudio wasn’t working, alsamixer wouldn’t start, Steam worked, but only after I removed the OS’s
libmp3lame0:i386. The error I got from starting these applications in a shell always revolved around this:
/lib/x86_64-linux-gnu/libsndfile.so.1: undefined symbol: lame_encode_buffer_interleaved_int
libsndfile1 was refering to some function that it expected in
libmp3lame0, but could not find it. And, sure enough, looking at the shared library file for lame with
nm -gD /lib/x86_64-linux-gnu/libmp3lame.so.0, that symbol was not there. Someone else had the same problem, but their solution did not seem to apply to me -
libsndfile1 were installed and
apt-get --reinstall install libmp3lame0 libsndfile1 also did nothing.
On a whim, I downloaded the latest versions of those packets (
--reinstall apparently does not do that, they were not in
/var/cache/apt/archives - how does that work?) and installed them with
And lo and behold, what do I get?
dpkg warns me that it is “downgrading”
So there, problem solved. I did not have the latest version of
apt for some reason thought my old version was newer than what it found in the repos.