Printer driver issues in MX LInux

My MX21.3"ahs" install has been happily driving my networked Brother MFC640CW printer since I first set it up 6 months ago. Suddenly, 2 weeks a go it stopped working.
CUPS accepts a print request, it appears in lpq -a, but nothing happens at the printer. It spools forever.
So I reinstalled the drivers ( they are 32 bit ) cleared the print queue, and still nothing happens when I do a print test or a job.
So I reread the driver install instructions very carefully and discover that the library package lib32stdc++6 must be present.
Checking with dpkg -l | grep lib32stdc reveals that it is not present.
So I install it
apt-get install lib32stdc++6
test the printing again, and it works.

So the mystery is… how and why did the package lib32stdc++6 get deleted?

It must have been present up until 2 weeks ago, or the printer would never have worked.
I have done nothing other than routine apt-get-update and apt-get upgrade so why would they have removed it?

I think the answer might be that lib32stdc++6 is a dependency only for my printer drivers, and they are installed with dpkg -i not with apt-get install, so they dont really belong to the package system , and the system thinks that lib32stdc++6 is not required by any package, so it deletes it.

So the question is, how can I tell the apt system that package lib32stdc++6 is not to be deleted?
Maybe I could find out what library files it installs, and move them to /usr/local/lib out of control of the package system?

3 Likes

I did that

$ apt-file show lib32stdc++6
lib32stdc++6: /usr/lib32/libstdc++.so.6   
lib32stdc++6: /usr/lib32/libstdc++.so.6.0.28
lib32stdc++6: /usr/share/doc/lib32stdc++6
lib32stdc++6: /usr/share/gdb/auto-load/usr/lib32/libstdc++.so.6.0.28-gdb.py

and now I have an even bigger mystery, because when I look at those files , none of them were updated today… ie my apt-get install lib32stdc++6 did nothing to any library file,… but it made the printer work?

Is it possible for a package to be installed, but not activated?
I wonder did the ldconfig at the end of the install do something?

1 Like

From apt-cache show lib32stdc++6 I get

$ apt-cache show lib32stdc++6
Package: lib32stdc++6
Source: gcc-10
Version: 10.2.1-6
Installed-Size: 2232
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Architecture: amd64
Depends: gcc-10-base (= 10.2.1-6), lib32gcc-s1 (>= 10.2.1-6), libc6-i386 (>= 2.18)
Conflicts: libc6-i386 (<< 2.9-22)

A conflict means that 2 packages are trying to provide the same file.
So does that mean I should delete something… I have

ii  libc6:amd64                              2.31-13+deb11u6                            amd64        GNU C Library: Shared libraries
ii  libc6:i386                               2.31-13+deb11u6                            i386         GNU C Library: Shared libraries
ii  libc6-dev:amd64                          2.31-13+deb11u6                            amd64        GNU C Library: Development Libraries and Header Files
ii  libc6-i386                               2.31-13+deb11u6                            amd64        GNU C Library: 32-bit shared libraries for AMD64

in addition to lib32stdc++6:amd64
That seems a tad excessive. What, if anything should I delete?

2 Likes

Hang on, that is not a conflict,
I have 2.31.13 for libc6 :i386
So back to the mystery.