2

我正在尝试构建一个 rpm,但不幸的是在我的构建机器中我只有有限的权限,这意味着 %install 中的操作无法在构建机器内完成。如何在不运行 %install 部分的情况下构建包(.rpm 文件)?看起来没有可用于此目的的选项:

http://www.rpm.org/max-rpm-snapshot/ch-rpm-b-command.html

我的 bu.spec 文件:

Summary: xxxx
Name: xx
Version: 1.0
Release: 1
Group: Applications/Sound
License: Share

%description

%prep
echo "prep"

%build

%install
echo "install"
mkdir -p /opt/xcp_src/
cp scripts.tgz /opt/xcp_src/

%files
/tmp/xcp_src/scripts.tgz

%post
cd /opt/xcp_src/
tar zxvf scripts.tgz
4

1 回答 1

2

首先,设置一个buildroot并在安装中使用它,例如:

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
...
%install
mkdir -p %{buildroot}/opt/xcp_src

其次,通过移动 RPM 构建区域,确保您无需 root 即可构建。

我还建议指定一个实际的文件列表(而不是让 RPM 提取一个 tgz 文件),因为这会使包完全可移动。

于 2010-11-09T10:23:41.173 回答