簡體   English   中英

MacOsX rpmbuild --target noarch不起作用

[英]MacOsX rpmbuild --target noarch doesn't work

我有通過maven構建rpm的java項目。 必需創建noarch包,但我看到具體的拱。 我在MacOsX上通過macports安裝rpm(4.4.9或5.2.0),並從maven rpm插件運行命令:

sudo rpmbuild -bb -v --buildroot /path/to/project/buildroot --target noarch java-search-qt.spec
Building target platforms: noarch
Executing(%install): /bin/bash -e /tmp/rpm-tmp.69257
+ umask 022
+ cd /opt/local/src/macports/BUILD
+ /bin/rm -rf /path/to/project/target/rpm/project/buildroot
+ /bin/rm -rf /path/to/project/target/rpm/project/buildroot
+ '[' -e /path/to/project/target/rpm/project/buildroot ']'
+ mv /path/to/project/target/rpm/project/tmp-buildroot /path/to/project/target/rpm/project/buildroot
+ /opt/local/lib/rpm/brp-compress
+ /opt/local/lib/rpm/brp-strip
+ /opt/local/lib/rpm/brp-strip-static-archive
+ /opt/local/lib/rpm/brp-strip-comment-note
+ /opt/local/lib/rpm/brp-nobuildrootpath
Processing files: java-search-qt-1.0.17-1
Finding  Provides: /opt/local/lib/rpm/find-provides
Finding  Requires: /opt/local/lib/rpm/find-requires
Requires(interp): /bin/bash /bin/bash /bin/bash /bin/bash
Requires(verify): /bin/bash
Requires(pre): /bin/bash
Requires(post): /bin/bash
Requires(postun): /bin/bash
Checking for unpackaged file(s): /opt/local/lib/rpm/check-files /path/to/project/target/rpm/project/buildroot
Wrote: /opt/local/src/macports/RPMS/i386/project.i386.rpm

Maven插件使用選項“--target noarch”,但rpmbuild完全忽略了它。 預計noarch.rpm文件,為什么rpmbuild在4.4.9版和x86上創建i386?

更新

我找到了一個調用rpmbuilder的工作變體,build * .noarch.rpm文件:

rpmbuild -bb --target noarch-linux-pc project.spec

另一個變種,build * .i386.rpm文件:

rpmbuild -bb --buildroot /path/to/buildroot --target noarch-linux-pc project.spec
rpmbuild -bb --define '_topdir /path/to/topdir' --target noarch-linux-pc project.spec

我無法理解。 有任何想法嗎?

PS對不起我的英語,這對我來說很難。

我有一些不同的版本,但在OS X上,使用RPM 5.4.14和rpm-maven-plugin 2.1-alpha-3,我可以通過指定以下內容為Linux創建一個noarch RPM:

<needarch>noarch</needarch>
<targetOS>linux</targetOS>

rpm-maven-plugin說:

[INFO] Building target platforms: noarch-apple-linux

從命令行,檢查包,所有看起來都很好:

rpm -qp --qf 'Arch:%{ARCH} OS:%{OS}\n' my-rpm-0.0.1-1.noarch.rpm 
Arch:noarch OS:linux

...結果安裝在Linux上很開心。

我發現了錯誤!

maven-rpm-plugin工具很糟糕。 此包包含類RPMHelper,並使用bash命令構建器。 rpmbuild工具需要強大的param排序,此類忽略所有規則。 我更改了param排序,現在我已經正確構建了rpm數據包。 從我看來,codehaus命令不再支持。 我認為需要我們在github上需要一個fork。

我沒有在MacOSX上構建的經驗,但我想我會在這里發布我們的pom.xml文件作為參考:

http://pastebin.com/dHVA4yZ1

我們在CentOS Linux下使用的maven命令行是:

mvn clean compile rpm:attached-rpm deploy

這會部署我們的RPM並創建:

target/rpm/mprew-behavior/RPMS/noarch/mprew-behavior-2.12.0s-19068.noarch.rpm

希望這有點幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM