Reputation: 121
I have two RPMS that I made (lib.rpm and program.rpm), one containing a shared library eg. libtest.so, libtest.so.1, libtest.so.1.0. The other containing a single binary that is linked to the shared library eg. test_program.
I installed lib.rpm on a new machine with no problems. Copied over test_program and ran it fine. I then build program.rpm containing test_program, again no problems. But when I do a rpm -ivh program.rpm I get:
error: Failed dependencies:
libtest.so.1() (64bit) is needed by test_program-0.1-1.x86_64
Yet, when doing a ldd on test_program it clearly finds the file at /usr/lib64/libtest.so.1.
Both my spec files are the bare minimum. Besides the package description I only added an entry under %files and AutoReqProv set to no.
So what gives?
Upvotes: 1
Views: 2746
Reputation: 15734
In the pastebin_link you gave I noticed
AutoReqProv: no
I think that causes not filling Provides
data of the rpm - because of this the info about the files doesn't go to rpm database.
The solution could be removing AutoReqProv
or setting it to yes
.
Edit: According to Nghia's comments it doesn't help:
Not sure why you need this, but if you really do, mentioning explicitly
Provides: /usr/lib64/libtest.so /usr/lib64/libtest.so.1 /usr/lib64/libtest.so.1.0
will probably solve your problem.
Upvotes: 1