问题标签 [rpm-spec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
807 浏览

linux - 如何在规范文件中覆盖 CONFIG_SITE(最佳实践)

如果用户在运行 rpmbuild 时尝试从 specfile 构建 rpm,并且在环境中设置了 CONFIG_SITE,并且该 specfile 使用“./configure --prefix=/usr && make”构建,那么用户在 CONFIG_SITE 中的设置可能会完全损坏构建。(作为一个具体的例子,假设 /usr/share/config.site 有“prefix=/bar”这一行。那么 spec 文件的文件清单将完全错误,rpmbuild 将失败。)

处理此问题的最佳做法是什么?似乎通常的做法是忽略它。我决定在规范文件中设置 CONFIG_SITE=true :

在调用 rpmbuild 时假设一个原始环境是否更常见,并且没有像在 /usr/share/config.site 中重置前缀这样的愚蠢行为?还是维护者负责确保规范文件将按预期构建 rpm?

0 投票
2 回答
1755 浏览

rpm - 如何强制 Anaconda 在 coreutils 之后安装我的包?

我有一个定制的 RPM,它构建了一组子包。每个子包在 spec 文件中都有一个 %post 脚本,用于将一些符号链接复制到另一个文件夹:

当我在正在运行的系统上安装一个子包 RPM 时,它工作正常。当我通过 Anaconda(作为 Kickstart 软件包列表的一部分)安装它时,RPM 的安装后脚本似乎没有运行。

编辑: 事实证明,它们确实运行了,但我收到一条错误消息:

显然,Anaconda 正在尝试在安装 coreutils 之前安装我的 RPM,即使我将 coreutils 指定为Requires:.

所以,我修改后的问题是标题:如何在coreutils之后强制安装我的包?

0 投票
3 回答
13032 浏览

relative-path - 在构建 RPM 时,如何使 _topdir 相对于 .spec 文件的位置?

我有一个.spec文件,它依赖于一个名为_topdir.

现在,当您从 git 签出 SRPM 源代码时,您必须更改_topdir指向的位置以rpmbuild使其正常运行。

你如何指定_topdir应该相对于.spec文件的位置,这样_topdir就不会被硬编码?

0 投票
2 回答
1143 浏览

packaging - 从源 tarball 创建一个 rpm 包 - 但 tarball 不包含规范文件,只是一个安装脚本

在我担任 SysAdmin 期间,我遇到过不提供 rpm 包来安装在基于 redhat 的发行版上的应用程序 - 仅提供源 tarball。源 tarball 不提供可以简化 rpm 包创建过程的规范文件。相反,源 tarball 仅提供 bash/ksh/ 脚本,必须以 root 身份执行才能在系统上安装应用程序。

我试图创建一个 rpm 包,它基本上运行安装脚本来执行安装脚本。我还尝试通过尝试以非 root 用户身份 rpmbuild 软件包并尽我所能修改安装脚本以确保脚本的安装目录引用 rpm 环境/宏来做正确的事情。但是对于一个几百行长的复杂安装脚本,它还调用了其他脚本......好吧,我注定要失败。

有没有更好的方法来打包这种 .spec-less 源 tarball?更好的解决方案是:

  1. 在应用程序安装之前以某种方式拍摄系统快照
  2. 使用提供的安装脚本安装源 tarball
  3. 安装后对系统进行快照,并确定安装所做的更改/添加
  4. 将更改/添加列表放入规范文件中,并以这种方式创建 rpm 包?

对此问题的任何有用/相关/指导性/有趣/深刻的输入和建议将不胜感激。

先感谢您

0 投票
1 回答
572 浏览

linux - 如何更新 RPM 版本?

如何更新 RPM 版本?我应该在我的规范文件中更新它并重新构建整个包吗?

0 投票
1 回答
9129 浏览

rpm - 通过添加前缀使 RPM 规范可重定位,但在安装时我看不到已安装的文件

0 投票
2 回答
42837 浏览

permissions - RPM 规范文件中的 %defattr 是什么意思?

创建 RPM 时,RPM 规范文件有一个指令%defattr. 我知道它定义了该 RPM 安装的文件的默认属性。如果我写%defattr如下,这是什么意思?

0 投票
1 回答
732 浏览

linux - 如何动态定义子包

我的目标是提出一个动态定义子包的规范文件。

目前,我在规范文件中定义了一个宏,以便我可以使用不同的参数调用它来生成不同的 %package 部分。例如。

%define create_pkg(n:)\ %package -n subpackage-%1\ 摘要:子包 %1\ ...\ %{nil}

%create_pkg sub1 %create_pkg sub2 %create_pkg sub3

但是,我只能在 specfile 中硬编码 create_pkg 宏的参数(sub1、sub2、sub3)。有没有办法让规范文件读取一个单独的文件,其中包含我想要的子包的名称?例如。subpackages.txt 将具有以下内容:

子 1 子 2 子 3

并且规范文件将读取 subpackages.txt 并使用从 txt 文件中读取的名称调用 %create_pkg 。

0 投票
1 回答
4551 浏览

rpmbuild - rpmbuild 失败:错误:找到已安装(但未打包)的文件:

不确定这是否是发布问题的正确位置。我正在尝试为我的项目创建 rpm,这是我第一次编写规范文件。当我使用命令构建规范时

rpmbuild -ba name.spec

请找到规范文件的链接 ( http://pastie.org/2426321 )。非常感谢您对此的任何帮助。提前致谢。

0 投票
1 回答
2429 浏览

rpm - RPM 规范文件构建阶段的 RPM 依赖错误

我的目的是libmy.so通过 RPM 分发已经构建的可安装库。

以下是 .spec 文件的片段:

在编译时libmy.so,我将它与libxx.so作为另一个 RPM 的一部分安装的链接。

在安装作为上述步骤 1 的一部分创建的 RPM 时,即使libxx.so安装在机器上也会出现以下依赖错误

我们尝试了以下方法。

在分析过程中,我们观察到 所在的路径libxx.so不存在于 中ld.so.conf。但是,添加一个libxx.so位于的路径条目并没有帮助我们。

请让我们知道我们是否需要执行任何其他步骤来消除此依赖项错误。