[SLE] Why does rpm not see dependencies that are there?
I downloaded http://www.isthe.com/chongo/src/calc/calc-2.12.0.4-0.i686.rpm and the following happened: chandas:/home/samjnaa/dl # rpm -Uvh calc-2.12.0.4-0.i686.rpm error: Failed dependencies: libhistory.so.4 is needed by calc-2.12.0.4-0.i686 libreadline.so.4 is needed by calc-2.12.0.4-0.i686 chandas:/home/samjnaa/dl # ls /lib/libhis* /lib/libread* -l lrwxrwxrwx /lib/libhistory.so.4 -> libhistory.so.5.1 lrwxrwxrwx /lib/libhistory.so.5 -> libhistory.so.5.1 -rwxr-xr-x /lib/libhistory.so.5.1 lrwxrwxrwx /lib/libreadline.so.4 -> libreadline.so.5.1 lrwxrwxrwx /lib/libreadline.so.5 -> libreadline.so.5.1 -rwxr-xr-x /lib/libreadline.so.5.1 The symlinks libhistory.so.4 and libreadline.so.4 were not there originally but I created them after I got the dependency error and I still get the error. What do I do? Thanks. -- Tux #395953 resides at http://samvit.org playing with KDE 3.53 on SUSE Linux 10.1 $ date [] CCE +2006-06-24 W25-6 UTC+0530
On Saturday 24 June 2006 17:36, Shriramana Sharma wrote:
I downloaded
http://www.isthe.com/chongo/src/calc/calc-2.12.0.4-0.i686.rpm
and the following happened:
chandas:/home/samjnaa/dl # rpm -Uvh calc-2.12.0.4-0.i686.rpm error: Failed dependencies: libhistory.so.4 is needed by calc-2.12.0.4-0.i686 libreadline.so.4 is needed by calc-2.12.0.4-0.i686 chandas:/home/samjnaa/dl # ls /lib/libhis* /lib/libread* -l lrwxrwxrwx /lib/libhistory.so.4 -> libhistory.so.5.1 lrwxrwxrwx /lib/libhistory.so.5 -> libhistory.so.5.1 -rwxr-xr-x /lib/libhistory.so.5.1 lrwxrwxrwx /lib/libreadline.so.4 -> libreadline.so.5.1 lrwxrwxrwx /lib/libreadline.so.5 -> libreadline.so.5.1 -rwxr-xr-x /lib/libreadline.so.5.1
The symlinks libhistory.so.4 and libreadline.so.4 were not there originally but I created them after I got the dependency error and I still get the error. What do I do?
First of all, you can't just create symlinks like that. There is a reason why projects change the so-name. It *might* work, but it's far from certain Secondly, rpm couldn't care less about what's actually on your hard drive, it only looks at what's in its database. What to do is to get a more modern version of calc, compiled for more recent libraries, possibly you can get the src rpm and rebuild it -- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com
Saturday 24 June 2006 21:23 samaye, Anders Johansson alekhiit:
Secondly, rpm couldn't care less about what's actually on your hard drive, it only looks at what's in its database.
So how do I get RPM to update its database?
What to do is to get a more modern version of calc, compiled for more recent libraries, possibly you can get the src rpm and rebuild it
It is the latest version. There is a problem with the spec file in the src.rpm and I don't know how to operate on the spec file within the srpm. I need to change "Copyright = LGPL" to "License = LGPL". Apparently the old syntax is not accepted any longer. I can change the spec file in the /usr/src/packages/SPECS directory and use rpmbuild -bb but that throws up another error, which I do not get when compiling directly from sources. So I think I really must use the srpm directly. Can you tell me how to operate directly on the spec file within the srpm? Or how can I decompress the RPM, change the spec file, and recompress it to a valid srpm? Thanks. -- Tux #395953 resides at http://samvit.org playing with KDE 3.53 on SUSE Linux 10.1 $ date [] CCE +2006-06-25 W25-7 UTC+0530
Am Sonntag, 25. Juni 2006 05:53 schrieb Shriramana Sharma:
Saturday 24 June 2006 21:23 samaye, Anders Johansson alekhiit:
Secondly, rpm couldn't care less about what's actually on your hard drive, it only looks at what's in its database.
So how do I get RPM to update its database?
rpm --rebuilddb or man rpm Guido -- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com
On Sunday 25 June 2006 16:44, Guido Pinkernell wrote:
Am Sonntag, 25. Juni 2006 05:53 schrieb Shriramana Sharma:
Saturday 24 June 2006 21:23 samaye, Anders Johansson alekhiit:
Secondly, rpm couldn't care less about what's actually on your hard drive, it only looks at what's in its database.
So how do I get RPM to update its database?
rpm --rebuilddb
or man rpm
No. In this case you'd need to construct a "fake" rpm that "provides" the files you have on disk, so they get inserted into the database But it's not needed. The rpm rebuilds cleanly on a 10.1 so it gets linked to the correct libs -- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com
On Sun, 2006-06-25 at 16:44 +0200, Guido Pinkernell wrote:
Am Sonntag, 25. Juni 2006 05:53 schrieb Shriramana Sharma:
Saturday 24 June 2006 21:23 samaye, Anders Johansson alekhiit:
Secondly, rpm couldn't care less about what's actually on your hard drive, it only looks at what's in its database.
So how do I get RPM to update its database?
rpm --rebuilddb
or man rpm
Just a comment here to Shriramana, if you do update your rpm database, it won't care what's on your hard drive that it had nothing to do with. IOW, those links you made won't register with the rpm db update. Which I think you know, but I'm not sure. -- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com
On Sunday 25 June 2006 05:53, Shriramana Sharma wrote:
It is the latest version. There is a problem with the spec file in the src.rpm and I don't know how to operate on the spec file within the srpm.
I need to change "Copyright = LGPL" to "License = LGPL". Apparently the old syntax is not accepted any longer.
I can change the spec file in the /usr/src/packages/SPECS directory and use rpmbuild -bb but that throws up another error, which I do not get when compiling directly from sources. So I think I really must use the srpm directly.
Can you tell me how to operate directly on the spec file within the srpm? Or how can I decompress the RPM, change the spec file, and recompress it to a valid srpm?
I just built the rpm by installing the spec file, changing "copyright" to "license" and then doing rpmbuild -bb on the spec file It might help if you tell us what the error you get is -- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com
Sunday 25 June 2006 20:44 samaye, Anders Johansson alekhiit:
I just built the rpm by installing the spec file, changing "copyright" to "license" and then doing rpmbuild -bb on the spec file It might help if you tell us what the error you get is
... forming no_implicit.arg make[1]: Entering directory `/usr/src/packages/BUILD/calc-2.12.0.6/custom' make[1]: *** No rule to make target `../endian_calc.h', needed by `custtbl.o'. Stop. make[1]: Leaving directory `/usr/src/packages/BUILD/calc-2.12.0.6/custom' make: *** [custom/libcustcalc.a] Error 2 make: *** Waiting for unfinished jobs.... make: *** Waiting for unfinished jobs.... no_implicit.arg formed make: *** Waiting for unfinished jobs.... error: Bad exit status from /var/tmp/rpm-tmp.90763 (%build) RPM build errors: user chongo does not exist - using root group chongo does not exist - using root user chongo does not exist - using root group chongo does not exist - using root Bad exit status from /var/tmp/rpm-tmp.90763 (%build) -- Tux #395953 resides at http://samvit.org playing with KDE 3.53 on SUSE Linux 10.1 $ date [] CCE +2006-06-26 W26-1 UTC+0530
On Mon, 2006-06-26 at 17:00 +0530, Shriramana Sharma wrote:
Sunday 25 June 2006 20:44 samaye, Anders Johansson alekhiit:
I just built the rpm by installing the spec file, changing "copyright" to "license" and then doing rpmbuild -bb on the spec file It might help if you tell us what the error you get is
... forming no_implicit.arg make[1]: Entering directory `/usr/src/packages/BUILD/calc-2.12.0.6/custom' make[1]: *** No rule to make target `../endian_calc.h', needed by `custtbl.o'.
I'm really not sure why you're getting this error. Makefile in the top level source directory does have a rule for creating this file, and I don't immediately see that it's conditioned on anything else How exactly are you building it, and what's the platform? By the way, there are updated src.rpm files since yesterday that have the License: tag changed -- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com
Monday 26 June 2006 20:31 samaye, Anders Johansson alekhiit:
How exactly are you building it, and what's the platform?
rpmbuild --rebuild calc-2.12.0.6-0.src.rpm running as root on SUSE 10.1, with GCC 4.10 (that came with SUSE).
By the way, there are updated src.rpm files since yesterday that have the License: tag changed
Yep, as you see my previous mail (and above) too, I have upgraded so that problem is solved. Apparently it's RPM 4.4's syntax change. -- Tux #395953 resides at http://samvit.org playing with KDE 3.53 on SUSE Linux 10.1 $ date [] CCE +2006-06-27 W26-2 UTC+0530
participants (4)
-
Anders Johansson
-
Guido Pinkernell
-
Mike McMullin
-
Shriramana Sharma