问题标签 [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 回答
983 浏览

rpm - rpm包失败,包仍然安装

我正在构建一个 rpm 包,但是我注意到了这种情况。当我的 rpm 脚本失败时,仍然认为 rpm 已安装在我的系统中。我正在考虑添加清理逻辑,如果在我的 rpm 脚本中检测到错误,我可以在我的代码中调用“rpm -e”并卸载脚本。但是,它似乎有点笨拙。如果脚本失败,是否有更清洁的方法来确保卸载 rpm?

谢谢!

0 投票
2 回答
282 浏览

terminal - 我是谁——RPM-SPEC

我只是想弄清楚谁调用了 root 或 sudo,因为我不想在 root 的主文件夹中设置一些东西,当我在终端中尝试它时它的工作完美,但不适用于规范,我做错了什么?

终端:

规格

你能帮助我吗 ?

或者有一种简单的方法可以了解 rpm-spec 中的用户路径,我的意思是 /home/mcfly/ 没有 /root?

问候

0 投票
1 回答
6883 浏览

rpmbuild - 用于升级的 RPM 规范文件

我的产品已经安装,我想升级它。现在我的升级只包含一个文件,而实际产品包含一个包含更多文件的目录结构。

现在,当我使用rpm -Uvh abc.x86_64.rpm它时,它会删除所有旧文件并将这个文件放在新的升级补丁中。

Spec 文件是用%pre, %post脚本编写的,但没有用。

我已经尝试使用%pre除要升级的文件之外的部分备份旧软件,并且在安装后在%post部分的帮助下我试图恢复除升级文件之外的备份文件。

通过执行上述升级无法正常工作。

我需要帮助来解决这个问题。任何指针?

0 投票
1 回答
760 浏览

java - jdk 1.7 的源/规范文件

我有来自 Oracle 站点的 rpm,但我想进行一些配置更改并重新打包 rpm。我没有在他们的网站上看到源文件或规范文件,我不想自己构建整个事情......任何人有任何建议或链接到我可以找到这个的地方吗?

0 投票
0 回答
1608 浏览

linux - Linux RPM-spec 不会将包复制到目标文件夹

我有一个包,目录名为libsampleapidoc在 parent directory 下%{name}-%{version}。我想从这些文件夹中生成一个RPM包。rpm包应在客户端指定的重定位目标文件夹下展开这些目录。%{name}-%{version}包含所有包目录的文件夹被压缩在tar.gz中并保存在SOURCE文件夹下。在阅读了规范文档和网络资源后,我制作了以下规范文件。

%setup命令成功展开 . 下的压缩文件夹%{_topdir}/BUILD/。然后我将这些文件复制到%{buildroot}(因为%files标签期望文件存在于BUILDROOT下进行打包)。所有这些文件的打包也成功完成,但是当我sudo rpm -ivh --nodeps <Package-Vesrion-Arch>.rpm在生成的 rpm 上运行命令时,我看不到在目标端创建任何文件夹或发生任何复制。尽管它显示软件包已成功安装;rpm -qa我的包裹有一个条目。

0 投票
4 回答
11699 浏览

linux - 在 RPM 规范文件中使用 Jenkins BUILD NUMBER

不确定是否有人以前尝试过或者是否容易,但是:

规范文件有两个唯一的版本指示符:

  • 版本(指定软件版本)
  • 发布(它指定了包的编号——如果你构建了一个 RPM,它就坏了,然后再构建一个,你就增加了“发布”号。

我想知道是否有人尝试过或知道如何使用 Jenkins $BUILD_NUMBER 变量来动态更改Release数字,从而在Release每次新的成功构建完成时增加数字......?

0 投票
1 回答
1263 浏览

conflict - RPM 规范中冲突“提供”的解决方案

考虑一种情况,其中有不同的 rpm 提供相同的功能。一个假设的例子是让 Oracle JDK rpm、Oracle JRE rpm 和 OpenJDK rpm 在其 SPEC 文件的“Provides”字段中都列出了“java-env”。现在我们有了像 ant、groovy、maven 这样的 rpm,它们的 SPEC 文件中都将“Requires”字段设置为“java-env”。尝试安装 groovy 或 maven 时会安装什么?我们可以通过哪些方式控制安装哪些依赖项?我认为一种方法是将 Oracle JDK rpm、Oracle JRE rpm 和 OpenJDK 都放在不同的存储库中并在存储库上设置优先级,但是这样一来,由于我有几种此类冲突,存储库的数量可能会继续增长.

0 投票
1 回答
605 浏览

configure - rpm 找不到配置没有这样的文件

我的规范文件有问题。当我用 rpmbuild 运行它时,它说它找不到 ./configure no 这样的文件或目录。这是我的规范文件的一部分代码。有人能帮我吗?

...

...

0 投票
4 回答
2203 浏览

redhat - 如何强制执行 RPM 需要订单

我整天都在尝试各种事情,但没有任何进展。

我正在为我的应用程序 (MyApp.rpm) 为 RHEL6 64 位编译一个 rpm 包,它需要一个名为 aksusbd.rpm 的第三方 32 位驱动程序包。现在,aksusbd.rpm 又需要兼容模式,由 glibc.i686.rpm 在 RHEL6 上提供。

所以在我的 MyApp.rpm 规范文件的某个地方,我有:

我的应用程序规范

它在安装(yum install MyApp)期间所做的是,首先安装 aksusbd,但由于未安装 32 位兼容性而失败。然后只是为了取笑我,在安装 glibc 之后立即。所以当一切都结束时,我可以打字

这次它可以工作了,因为现在安装了 glibc。

我到底怎么教它做得比这更好!

(咆哮)

0 投票
2 回答
1176 浏览

installation - 有没有一种安全的方法来修改 RPM 数据库中另一个包的条目?

我遇到了这个问题中描述的问题,其中一个旧包已过时,其 %preun 脚本以 $1 = 0 运行,导致不良行为。我知道这可以通过使用 -e + -i(如该答案中的建议)或 --nopreun 标志来解决,但很难将这些信息传达给习惯于简单使用 -U 的用户。

我无法修改现有的 %preun 脚本。在旧包的 preun 之后,我看不到任何方法可以从新包中运行附加代码。我找不到任何方法让我的新包以编程方式阻止旧的 %preun 脚本执行。

是否有任何安全的方法可以访问 RPM 数据库并删除现有包的脚本?