【问题标题】:rpmbuild: how to build the package without %install?rpmbuild:如何在没有 %install 的情况下构建软件包?
【发布时间】:2010-11-09 09:50:10
【问题描述】:

我正在尝试构建一个 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

【问题讨论】:

  • 您提供的代码是否代表规范文件?
  • 这是你自己的程序,还是你只是想打包一些东西?如果是后者,则与编程无关。

标签: linux rpm rpmbuild


【解决方案1】:

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

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

其次,确保您可以通过moving the RPM build area 以非root 身份进行构建。

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

【讨论】:

  • ...这就是 buildroot 的用途
猜你喜欢
  • 2016-05-19
  • 1970-01-01
  • 2016-04-13
  • 2017-05-14
  • 1970-01-01
  • 2011-12-31
  • 2015-09-22
  • 2020-03-18
  • 1970-01-01
相关资源
最近更新 更多