Getting RPM dependancy to recognise complied source
First off I'm doing this on a server at home, not on my linode.
Background:
I'm installing a package under Redhat 9 and have failed dependancies of libiconv.so.2 and libsablot.so.0
I've found the maintainer sites and downloaded what they have in rpm format and installed. However when I run the application it complains about an undefined reference. (This is not the problem)
So I rpm -e the packages and complie and install from source. RPM still complains about the dependancies, but if I rpm -i -f, the package installs and works fine.
Question:
So the question is how do you get rpm to recognise that the dependancies are satisfied with tar.gz complied source?
I'm assuming it's using its own database that indicates the packages have never been installed. I've looked at the man page for rpm but I can't see the answer (doesn't mean it's not there)
I've run ldconfig -v after the libs were installed (but don't know if I needed to)
Any help much appreciated,
Mark
6 Replies
Good luck with whatever you find, though.
The directory itself is a Berkeley DB database.
All the information is in the "Packages" file : if you lose this, say goodbye to your rpm database.
When you use "rpm –rebuilddb" the other files in the directory which are merely index for some rpm properties are scraped and recomputed from the content of Packages.
The only way to make rpm understands that some lib is installed is to update this database, you could do it manually by understanding the layout of the db and updating it directly but the only sane way to do this is to install a rpm providing the lib you want to install.
The answer is to install sablotron-1.0.1-2.i386.rpm and then make install the tar.gz file without enabling javascript.
This keeps the rpm database happy and fixes the undefined symbol: JS_PropertyStub error that made me compile in the first place.
Thanks for your help,
Mark
Now your rpm database is slightly out of sync, nothing really armful, but for example you won't be able to detect changes in sablotron's file by running rpm -V.
@gyver:
The clean way is to download the src.rpm of the rpm you installed, install it, change the spec file in /usr/src/redhat/SPECS to fit your needs and launch a rpmbuild -ba
: you'll have a proper installable rpm.
I tried that and had errors I didn't understand / couldn't fix. I don't consider myself up to the level of modifying spec files.
I originally tried rpmbuild -ta file.tar.gz but it complained things were missing, that I didn't know how to fix. The source just complied and worked.
I've sent info I found on the web about the linking of the js library when using salbotron to the coders of the third party package.
Hopefully they can make the necessary changes (which I didn't really understand, but they should) and the problem will then go away.
In the end I just want a proceedure to install this software that a 4 year old could follow. While no compiling would be nice, It's just not there yet.
Thanks again,
Mark.