【发布时间】:2017-11-05 03:32:50
【问题描述】:
我正在为 centos 制定 RPM 规范,如果 arch 是 64 位,它需要将共享库安装到 /usr/lib64,否则需要安装到 /usr/lib?
【问题讨论】:
我正在为 centos 制定 RPM 规范,如果 arch 是 64 位,它需要将共享库安装到 /usr/lib64,否则需要安装到 /usr/lib?
【问题讨论】:
这不是它应该如何工作的。决定库去哪里的不是内核类型,而是库类型本身 - 64 位 .so 去 /usr/lib64,32 位去 /usr/lib。
你不能让一个 RPM 包含两种架构,结果应该是 2 个不同的 RPM,如果我没记错的话,如果你使用 %_libdir,RPM 宏应该会为你解决这个问题。
【讨论】:
库的安装路径将由您创建的包的类型决定。
【讨论】:
对于 Redhat(和 CentOS)6,RPM 宏似乎已经注入了 —libdir=/usr/lib64。
这是 RH/CentOS 6 通过 RPM SPEC 文件设置 lib64 的方式。
在 RH/CentOS 6 上,在 x86_64 架构类型的情况下,执行 automake/configure 不会(并且根据 RH,不会)将库前缀添加到 /usr/lib64。
所有这些都已在 RH/CentOS 7 及更高版本中得到修复。
【讨论】: