rpmrpmbuild

Missing libraries in my RPM (but I know they are there)


I have an RPM that I am trying to install in my VM. My RPM is named myPackage.rpm and when I try to install it (yum install myPackage.rpm), I am getting the following errors:

Error: Package: myPackage.x86_64 (/myPackage)
       Requires: libicudata.so.32()(64bit)
Error: Package: myPackage.x86_64 (/myPackage)
       Requires: libicuuc.so.32()(64bit)
Error: Package: myPackage.x86_64 (/myPackage)
       Requires: libicui18n.so.32()(64bit)

I did rpm2cpio myPackage.rpm|cpio -idvm to pull all the files from my rpm (in /root/rpms).

I did a find for libicudata.so*, and it shows the following:

/root/rpms/usr/lib64/libicudata.so.32.0
/root/rpms/usr/lib64/libicudata.so.32
/root/rpms/usr/lib64/libicudata.so
/root/rpms/usr/lib/libicudata.so.32.0
/root/rpms/usr/lib/libicudata.so.32
/root/rpms/usr/lib/libicudata.so

/usr/lib64/libicudata.so.32.0
/usr/lib64/libicudata.so.32
/usr/lib64/libicudata.so.50.1.2
/usr/lib64/libicudata.so.50
/usr/lib/libicudata.so.32.0
/usr/lib/libicudata.so.32
/usr/lib/libicudata.so.50.1.2
/usr/lib/libicudata.so.50

The files listed at /root/rpms/usr/ are files from my rpm, the others are installed in the VM.

I am not sure what I am doing wrong and why. Am I packaging my RPM incorrectly?


Solution

  • I found my error. All the library files for ICU were messed up before I created my RPM. I ran ldconfig and it gave me error messages similar to this:

    ldconfig: /lib/libicudata.so.32 is not a symbolic link

    Where I was building my RPMs, what was supposed to be the symbolic links were actually files that were identical to the lib they were supposed to be pointing to. So, I deleted what should have been the symlinks, and recreated them. This eliminated the error.