【发布时间】:2016-11-18 23:48:14
【问题描述】:
在仅放置文件时,正在寻找仅澄清 %install 宏的人。我创建了一个没有错误的 RPM,它应该只从 buildroot 获取文件并将它们 cp 到 /usr/lib。我在 %install 的 SPEC 文件中拥有以下内容,并且基于 this post。我认为这足以让 rpm 将文件从 buildroot 复制到 /usr/lib 位置。
这是我尝试过的,并且成功了:
%install
mkdir -p %{buildroot}/usr/lib
install -d %{buildroot}/usr/lib/
重新思考,我想,让我们告诉 rpm 我想将文件复制到哪里。所以我尝试了这个:
%install
mkdir -p %{buildroot}/usr/lib
cp %{buildroot}/usr/lib/ /usr/lib/
这抱怨 /usr/lib/ 位置不能被用户写入,我在构建机器上创建 rpm。我的印象是规范文件的%install 部分应该是关于在目标服务器上安装 rpm 时文件应该复制到何处的说明。我不希望它查看 rpm 构建服务器的本地文件系统。我背后的想法是,应该构建 RPM,但如果我尝试以非特权用户身份安装 rpm,它不应该在 rpm 安装之前失败。在构建期间它不应该关心。我只是想将一些 lib 文件 cp/提取到我安装 rpm 的服务器上的 /usr/lib 中。
我的假设是,rpm 会在我安装 rpm 的服务器上创建 BUILDROOT 位置,然后将内容从 buildroot 位置复制到提到的目标位置。
【问题讨论】:
-
注意:
%install是一个规范文件部分。install是您系统上的可执行文件,类似于cp,但维护权限等。