2017-07-15 65 views
2

我是新來的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 
+0

您是否將文件從root用戶的主目錄複製到RPM中?該文件是預先構建的二進制RPM嗎? – mattdm

回答

5

答案是的rpmbuild使用自動相關性生成使用ldd命令被包括在所述文件%部分中的任何二進制:

http://ftp.rpm.org/max-rpm/s1-rpm-depend-auto-depend.html

+0

請注意,實際實現今天有點不同,但效果基本相同:默認情況下,任何發貨的ELF二進制都會自動生成依賴關係。 –

相關問題