问题标签 [rpmbuild]

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 投票
3 回答
5374 浏览

rpm - rpm 规范文件中的 chkconfig 命令

我想在 rpm 规范文件的 %install 部分使用“chkconfig --del NetworkManager”命令。如果我包含此命令,则 rpm 构建良好,但是当我安装该 rpm 时,看起来该命令没有被执行。安装后,我使用“chkconfig --list”命令进行了验证,并观察到该服务一直在运行。

这是我正在使用的规范文件。请让我知道我错了。

0 投票
2 回答
2434 浏览

repository - 从当前目录创建 RPM

我正在尝试从本地源创建一个 rpm。是否可以以类似于的方式进行编译pdebuild- 只需将本地目录复制为源并对该副本进行操作?每次我这样做rpmbuild -ba ...时,它都会尝试解压缩一些存档RPMBUILD/SOURCE,但我不想那样做。

本质上,我希望能够使用代码签出存储库,rpmbuild -ba application.spec在该签出目录中执行并让它做正确的事情......这可能吗?

0 投票
7 回答
72761 浏览

linux - 从 rpm 包中提取规范文件

有没有办法从 rpm 包中提取规范文件(我只有 RPM 文件)

不是由

(此语法仅从 rpm 获取规范文件)

0 投票
2 回答
4638 浏览

bash - 我可以在 RPM 规范文件中使用 Bash 功能吗?

搜索开源项目,向我展示了野外的规范文件确实使用 bash 结构,例如cat info|while read

但它真的安全吗?rpm 文档是否告诉我我可以依靠%build正在运行的部分Bash

0 投票
1 回答
2188 浏览

rpm - 如何制作 RPM 包(没有 rpmbuild)

债务:

转速:

什么用作 SOME_COMMAND 和 SOME_FILE?

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 投票
2 回答
39525 浏览

linux - 解压 RPM 文件并重新打包

我有一个 RPM 文件。我必须对该 RPM 进行一些更改,重新打包并测试。谁能帮我?

0 投票
2 回答
1131 浏览

linux - 构建 rpm,覆盖 _topdir,但获取 BuildRequires deps?

我有一个libfoo-devel可以创建的 rpm,使用技巧来覆盖_topdir. 现在我想构建一个包“ bar”,它有一个 BuildRequires ' libfoo-devel“。我似乎找不到正确的方法来访问它的内容,libfoo-devel而不必在构建主机上安装它。我应该怎么做?

编辑:

我的构建和目标发行版都是 SuSE。

我更喜欢不需要的解决方案mock,因为我相信 SuSE 不会将其包含在其股票回购中。

后续编辑:

我相信我寻求的答案就在build包装中。也许这是 SuSE 的回答mock?还是oBS服务的分布式版本?

描述

build 是一个以安全和干净的方式构建 SuSE Linux RPM 的工具。build 会将最小的 SuSE Linux 作为构建系统安装到某个目录中,并将 chroot 到该系统以编译软件包。这样你就不会冒险破坏你的工作系统(例如由于规范文件损坏),即使包不使用 BuildRoot。

build 在规范文件中搜索 BuildRequires: 行;如果找到这样的行,则安装所有指定的 rpm。否则,将使用默认包的选择。请注意,构建不会自动解决缺少的依赖项,因此指定的 rpm 必须足以用于构建。