Manually fixing missing dependencies

Hello,

I spent most afternoon trying to install my printer (canon i250) and… well, I’m stuck.

I have these rpm file with the following missing dependencies:
libglade.so.0
libpng.so.2
libpopt.so.0
libxml.so.1

I installed some compatible packages with yast and solved the libxml issue.
I also installed compatible packages for libglade, but it only installed libglade.so and not libglade.so.0.

So I did a symbolic link, a hard link, copied the file, changed his name, both in usr/lib and usr/lib64.

The rpm always reports the missing dependency.
So… what am I doing wrong?
Is there a main db for registering libraries, or something like that?..

Any help will be greatly appreciated!

Thanks!!!

RPM reports dependency problems because it looks in its own database, not on the files on disk you have. Also, when you install a lib, you should run as root ‘ldconfig’ (without quotes) to update the linker information. Often but not always, .so.0 is a symlink to .so and if it’s not there, the linker will create it when ldconfig is ran

libglade.so.0 is actually very old, from the times of earlier GTK1 and is provided by the package gtk1-compat-devel

Thanks, microchip8!

I have gtk1-compat-devel installed, but it does not have this specific file.

‘ldconfig’ also did not do it…
I used the -l switch and found libglade.so.0 was not listed.

When I did
ldconfig -l libglade.so.0
I got the following error:
ldconfig: Ignored file libglade.so.0 since it is not a regular file.

Well, it is not in fact a file, it’s a link. But so are many other which ldconfig identified…

Is there a manual out there?..

What about making a symlink called libglade.so.0 to libglade.so, running ldconfig, forcing install of that one RPM package with --nodeps and then trying to run the software? It could work but there are no guarantees. I’ve done it in the past for some old programs where I couldn’t find a specific lib version for them and some worked while another ones just bugged out

Also, does CUPS not support your printer?

That file went out with SUSE 9.1. It’s libglad-0.x. And the others are old to. This is why rpm is reporting them not found. They are not on your system, nor should they be. The current libglade package is libglade2. Now as to your cannon i250 driver, try here OpenPrinting database - Printer: Canon i250

Hy! Thanks!..
But I’m still not getting anywhere!

I have the drivers suggested in the Open printing database. Those are the files witch require libglade.so.0 and libpng.so.2 to install.

I made a symbolic link from libglade.so.0 to the 32bit compatible version installed by gtk1-compat-devel.

I run ‘ldconfig’.

What is still bothering me, is that rpm always report the file as missing (even with the sym-link)!

I tried rpm -i --nodeps but it did not work. Shouldn’t I be able to install a library manually, and have rpm find it? I don’t seem to find any info about that…

Did you notice that the file was for Redhat 9? Redhat 9 is very old. Cannon has stated they will not update or further support it. I found this link that may help. In the link, I saw 1 possibility. OpenPrinting User Forums :: Printers from Canon :: Canon - NO support for Linux

I tried looking in YaST, and your printer was not there. I also tried cups.org and looking for the driver there. No luck.

You could force the rpm, but then the driver may not work, or if it does, features wont work. Compiling will likely bomb out for the same reasons. Your dealing with old files and old dependencies. Last time I saw this working was 3 years ago.

In the above forums link I posted, they did mention gutenprint. Here is that link. Gutenprint Printer Drivers and here is gutenprints users manual http://gutenprint.sourceforge.net/gutenprint-users-manual.pdf

On the supported printers page, here is a very partial list of supported printers
Gutenprint Supported Printers

Canon i560bjc-i560Canon-i560 Canon i80bjc-i80Canon-i80 Canon i850bjc-i850Canon-i850 Canon i860bjc-i860Canon-i860 Canon i865bjc-i865Canon-i865

Sorry. Looks like your printer is not supported.

Please stop making symlinks and hard links. I don’t want you breaking your system.

lol, thanks for the friendly advice (in fact I already did some damage, trying to print…)

I realize it probably doesn’t work, but I was trying to understand the system a little (maybe to compensate this setback…).

I only did a link from libglade.so.0 to the latest version of the 32-bit version of the file. Wasn’t rpm supposed to find it? How come it doesn’t?..

And thanks for your time (I tried some of Gutendrivers but they did not work… naturally…)!

Rpm has it’s own database, found in /var. Just cause you link one file to another, doesn’t mean you change the rpm database. This is one of the problems with rpm. If you installed an app via source, you’d have the exact same issue that you are experiencing with rpm. That is to say, rpm would not be aware of it.