2011-10-10 58 views
2

有下一种问题。想重建垃圾收集器(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包,排除一些依赖关系?

% 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压缩?

+0

你想他们静态链接? – Michel

+0

但我只是假设它可以帮助我 – mart7ini

回答

3

大部分依赖的是由“发现,需要”功能创建的。如果您在.sec文件中指定此项:

AutoReq: no 

它们都不会被创建。

我不能确定的一种简单的方法来排除单的,但是。这是全部或没有。

+0

yeap,它的工作,但在这种情况下,你会得到分段错误错误,并且它很伤心:) – mart7ini

+0

可悲的去极端去除一些依赖... –

-1

您需要这只是禁用一个或多个延误,本公司或需要

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

+0

虽然这个链接可能回答这个问题,最好在这里包含答案的基本部分,并提供参考链接。如果链接页面更改,则仅链接答案可能会失效。 –

+0

我没有参考关于排除一个或多个自动生成需求的完整解释..任何方式我会写一个答案... –

0

最简单的方法来禁用自动依赖提取以去除导致依赖文件(县)的执行位: rpm不会自动从非可执行文件中提取依赖关系。

还可以过滤的依赖关系(所述滤波是在不同的版本的转速的不同,但是可能的以rpm的所有版本)。

但是您要过滤的依赖关系通常不是问题。您是否试图在较新的机器上构建并安装在旧版本的机器上,并使用老版本的glibc?

2

只要定义需要你想排除:

%定义__requires_exclude libXXX.so.X