RPM %安装部分

RPM %安装部分

所以,我对 rpmbuild 过程有些困惑。我现在正在维护以前创建的大量脚本,虽然大多数工作都是如此,但它们之间存在足够的差异,以至于找不到一致的方法。

  • 有些在打包之前将文件单独复制(非常繁琐)到临时位置。

  • 有些使用原作者的规范文件,我们只是修改配置或代码。

  • 有些是自制的,但显然是在与我具有相同理解水平的情况下创建的!

具体来说,我很想拥有这种make; make install方法,但是,虽然make构建的软件很好,但make install实际上将其安装在我的系统上。

我想做的是使用 make install,但为了打包程序的目的将其放置在工作目录中。我希望将软件安装在目标计算机上的/usr/binetc 中,但是当我运行 make install 时,我希望它转到/tempDir/usr/bin-- 有意义吗?基本上,我只是想避免我正在打包的软件污染我的系统;全部插入似乎不对。一定是配置错误还是这是正常现象?

我正在使用的规范文件的摘录。将源文件复制到/usr/src/redhat/SOURCES并使用rpmbuild -bb <specfilename>.

BuildRoot:      /var/tmp/%{name}-%{version}-root
Source0:        %{name}-%{version}.tar.gz

%prep
%setup -q

%build
./configure <config opts>
make 

%install
rm -rf $RPM_BUILD_ROOT
make install

答案1

要打包的文件需要安装/隔离到影子树中。

这通常是通过覆盖]DESTDIR 来完成的,例如

make DESTDIR=%{buildroot} install

在 %install 部分。

相关内容