为什么rpmbuild需要这些C++库,这会导致这个错误?
问题描述:
我是新来的RPM包装,但rpmbuild似乎需要C++标准库,我不知道为什么。为什么rpmbuild需要这些C++库,这会导致这个错误?
下面是RPM说明文件:
Name: go-github-release-test
Version: 0.0.1
Release: 1
License: LICENSE
Url:
Summary: Test of go-github-release process
%description
Test of go-github-release process
%prep
%build
%install
mkdir -p %{buildroot}/%{_bindir}
cp /root/go-github-release-test/build/go-github-release-test %{buildroot}/%{_bindir}
%files
%{_bindir}/go-github-release-test
%clean
%changelog
* Fri Jun 09 2017 Jerry W - 0.0.1-1
- added text to readme
- add CmakeLists.txt
- add appveyor.yml and travis.yml
- add gitignore
- moved main cpp around
- added helloworld.cpp
- added detectme.txt
- removed test dirlist
- added readme
- init: bump script
- initial commit
这里是日志显示,它的失败,因为它包括拱特定的C++库生成一个“noarch”软件包,尽管我还没有提到他们的任何地方:
[[email protected] go-github-release-test]# rpmbuild --target noarch -bb pkg-build/SPECS/go-github-release-test.spec --define "_topdir /root/go-github-release-test/pkg-build"
Building target platforms: noarch
Building for target noarch
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.aEY2Y9
+ umask 022
+ cd /root/go-github-release-test/pkg-build/BUILD
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.jOeknE
+ umask 022
+ cd /root/go-github-release-test/pkg-build/BUILD
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.PZA4L8
+ umask 022
+ cd /root/go-github-release-test/pkg-build/BUILD
+ '[' /root/go-github-release-test/pkg-build/BUILDROOT/go-github-release-test-0.0.1-1.noarch '!='/']'
+ rm -rf /root/go-github-release-test/pkg-build/BUILDROOT/go-github-release-test-0.0.1-1.noarch
++ dirname /root/go-github-release-test/pkg-build/BUILDROOT/go-github-release-test-0.0.1-1.noarch
+ mkdir -p /root/go-github-release-test/pkg-build/BUILDROOT
+ mkdir /root/go-github-release-test/pkg-build/BUILDROOT/go-github-release-test-0.0.1-1.noarch
+ mkdir -p /root/go-github-release-test/pkg-build/BUILDROOT/go-github-release-test-0.0.1-1.noarch//usr/bin
+ cp /root/go-github-release-test/build/go-github-release-test /root/go-github-release-test/pkg-build/BUILDROOT/go-github-release-test-0.0.1-1.noarch//usr/bin
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Processing files: go-github-release-test-0.0.1-1.noarch
Provides: go-github-release-test = 0.0.1-1
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libgcc_s.so.1()(64bit) libm.so.6()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(GLIBCXX_3.4)(64bit) rtld(GNU_HASH)
error: Arch dependent binaries in noarch package
RPM build errors:
Arch dependent binaries in noarch package
答
答案是的rpmbuild使用自动相关性生成使用ldd命令被包括在所述文件%部分中的任何二进制:
+0
请注意,实际实现今天有点不同,但效果基本相同:默认情况下,任何发货的ELF二进制都会自动生成依赖关系。 –
您是否将文件从root用户的主目录复制到RPM中?该文件是预先构建的二进制RPM吗? – mattdm