gpt4 book ai didi

rpmbuild 文件的简单副本

转载 作者:行者123 更新时间:2023-12-04 22:57:42 26 4
gpt4 key购买 nike

寻找某人在仅放置文件时澄清 %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/extract 到我安装 rpm 的服务器上的/usr/lib 。

我的假设是,rpm 将在我安装 rpm 的服务器上创建 BUILDROOT 位置,然后将内容从 buildroot 位置cp到提到的目标位置。

最佳答案

%install 部分在您的包构建期间在您的机器上执行。在本节中,您应该在 %{buildroot} 中创建文件结构。将它复制到客户端机器上的最终目的地是 而不是 您的任务。

所以你应该做这样的事情:

%install
mkdir -p %{buildroot}/usr/lib
cp -a some-your-file-from-extracted-targz %{buildroot}/usr/lib/

然后在 %files 部分:
%files
/usr/lib/foobar.bin
/usr/lib/somedir/

然后 Rpm 将从 %buildroot 中获取 %files 部分中列出的所有文件,并将其放入 package.json 中。

关于rpmbuild 文件的简单副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38401664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com