5

有下一个问题。想要重建垃圾收集器 (gc-7.1-10.el6.src.rpm) 并排除 ld-linux.so.2, ld-linux.so.2(GLIBC_2.3) & libpthread.so.0(GLIBC_2.3.2) ) 依赖关系。我怎样才能得到我想要的类似的东西? (CentOS 6)

% rpm -qp -R rpmbuild/RPMS/i386/gc-7.1-10.el6.i386.rpm
/sbin/ldconfig  
/sbin/ldconfig  
ld-linux.so.2  
ld-linux.so.2(GLIBC_2.3)  
libc.so.6  
libc.so.6(GLIBC_2.0)  
libc.so.6(GLIBC_2.1)  
libc.so.6(GLIBC_2.1.3)  
libc.so.6(GLIBC_2.2.4)  
libc.so.6(GLIBC_2.3)  
libcord.so.1  
libdl.so.2  
libdl.so.2(GLIBC_2.1)  
libgc.so.1  
libgcc_s.so.1  
libgcc_s.so.1(GCC_3.0)  
libgcc_s.so.1(GCC_3.3.1)  
libgccpp.so.1  
libm.so.6  
libpthread.so.0  
libpthread.so.0(GLIBC_2.0)  
libpthread.so.0(GLIBC_2.1)  
libpthread.so.0(GLIBC_2.2)  
libpthread.so.0(GLIBC_2.2.3)  
libpthread.so.0(GLIBC_2.3.2)  
libstdc++.so.6  
libstdc++.so.6(CXXABI_1.3)  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
rtld(GNU_HASH)

我需要编辑我的规范文件,或者更改和重建我的 tar.gz 存档吗?

4

4 回答 4

8

只需定义您要排除的要求:

%define __requires_exclude libXXX.so.X

于 2015-07-17T02:08:36.653 回答
6

这些依赖项中的大多数是由“find-requires”功能创建的。如果您在.spec文件中指定:

AutoReq: no

它们都没有被创建。

但是,我不确定排除单个的简单方法。要么全有,要么全无。

于 2011-11-24T01:50:36.127 回答
0

禁用自动依赖项提取的最简单方法是从导致依赖项的文件中删除执行位:rpm 不会自动从非可执行文件中提取依赖项。

您还可以过滤依赖关系(过滤在不同版本的 rpm 中不同,但在所有版本的 rpm 中都可能)。

但是,您希望过滤的依赖项通常不是问题。您是否尝试在较新的机器上构建并安装在较旧的机器上,使用较旧版本的 glibc?

于 2015-07-15T15:57:08.043 回答
-1

您需要这个来禁用一个或多个 provie 或要求

http://www.rpm.org/wiki/PackagerDocs/DependencyGenerator

于 2015-07-15T06:55:29.970 回答