How to make an rpm spec that installs libraries to /usr/lib xor /usr/lib64 based on arch?
I'm working on an RPM spec for centos and it need开发者_开发百科s to install the shared libraries to /usr/lib64 if the arch is 64 bit and /usr/lib otherwise?
That's not how it's supposed to work. It's not the kernel type that should determine where your libraries go, but the library types themselves - 64-bit .so's go to /usr/lib64, 32-bit to /usr/lib.
You can't have one RPM contain both architectures, the result should be 2 different RPMs, and if I am not mistaken RPM macros should resolve this for you if you use %_libdir.
The path a library is installed into would be determined by the type of package you are creating.
It would appear that for Redhat (and CentOS) 6, the RPM macro already injects the —libdir=/usr/lib64.
This is how RH/CentOS 6 sets the lib64 which is through RPM SPEC file.
On RH/CentOS 6, doing automake/configure does not (and according to RH, will not) do the library prefix to /usr/lib64 in case of x86_64 arch type.
All this has been fixed for RH/CentOS 7 and higher.
精彩评论