我的dunno.spec
文件具有以下结构:
Name: dunno
Vesion: 1.0
...
BuildArch: x86_64
%description
...
%package common
Summary: Shared files
BuildArch: noarch
我想在运行rpmbuild -ba dunno.spec
之后我应该得到两个二进制包:
dunno-1.0.x86_64.rpm
dunno-common-1.0.noarch.rpm
然而我得到了:
dunno-1.0.x86_64.rpm
dunno-common-1.0.x86_64.rpm
如果我从规范中删除了行BuildArch: x86_64
,那么我得到
dunno-1.0.noarch.rpm
dunno-common-1.0.noarch.rpm
如何解决这个问题?
RPM v4.4.2.3。
答案 0 :(得分:6)
将构建拆分为2个包,一个是x86_64,另一个是noarch。
您可以使用%ifarch逻辑从单个规范执行2个构建(但是 它通常更容易/更清洁,使用2个规格文件即使烦人)。
在其中包含与平台无关的内容也没有任何损失 一个x86_64子包而不是一个noarch子包。
答案 1 :(得分:2)
您可以rpmbuild
运行rpmbuild --target=x86_64,noarh ...
,然后rpmbuild
将为每个拱门构建两次传递包。
答案 2 :(得分:0)
您应该将dunno-common
做成子包
您的规格应如下所示
Name: dunno
Version: 1.0
# next line is not needed
BuildArch: x86_64
%package common
BuildArch: noarch
Summary: ...
%description common
%files
# ...
%files common
# ...