rpm-spec相关内容

如何在安装过时另一个 RPM 的 RPM 时检测升级

RPM scriptlet 在 $1 中传递(此名称的软件包将在操作完成时留在系统上),以便他们可以确定是否正在进行软件包升级或删除.由于我无法控制的原因,我相信该软件包的下一个版本可能与第一个版本具有不同的软件包名称.我尝试创建一个 "obsoletes" 旧包的新包一个并使用它进行升级.但是,旧包 postun scriptlet 仍然得到 $1 == 0 并且我的 postun 清理脚本运行 ..
发布时间:2022-01-13 21:55:56 其他开发

根据其他 rpm 前缀的前缀和可重定位 rpm 包

我已经在/opt 中安装了 sample.rpm.我希望 samplw2.rpm 找到 sample.rpm 的重定位路径,并将自身安装在同一位置.规范文件中是否有任何命令或宏可以在安装前检查它? 解决方案 我很确定这是不可能的;文件位置是固定的.最简单的解决方案是将它们放在已知位置,然后在您的 %post 中设置一个符号链接,eg 链接 /opt/sample2 到 /usr/local ..
发布时间:2021-07-10 20:10:54 其他开发

如何在不修改现有 rpm 的规范文件的情况下使现有的 rpm 过时新的 rpm

我的团队将向用户区域添加一个新的 RPM,Y.有一个 RPM,X,它必须与 Y 互斥.换句话说,X 和 Y 不能共存. 因此,在 Y 的规范文件中,有一行写着“Obsolete: X". 问题是我们不能修改 X 的 spec 文件.在编写它时,没有名为 Y 的包.因此,它既不是“Obsoletes"也不是“Conflicts"Y. 我们可能会向用户领域添加更多的假/虚拟/元软件包 ..
发布时间:2021-07-10 20:10:48 其他开发

rpm.spec 中的 %attr 不采用 env 变量的值

我有一个 rpm.spec 文件,我必须在其中授予文件的文件权限. 我希望 %attr 在 rpm 安装期间采用 $user 和 $group 值.(我将在其中执行“export user="和“export group=")但它不采用这些值,而是在安装 rpm 时出现语法错误. 我的规范文件中有这样的内容 %pre%个文件%defattr(-,root,root,-) ..
发布时间:2021-07-10 20:10:39 其他开发

如何安装两个不同版本的相同 rpm 并使它们并行工作

目前我正在尝试安装 rpmsecured_soft_2.0.0.rpm 并且我是无法安装它,因为我们已经安装了secure_soft_1.3.0. 要求是我们需要安装两个版本. 复杂性: 这些包又具有依赖的 rpm(很多)以及所有这些相互依赖的 rpm 也有版本例如:secure_soft_1.3.0 仅适用于 1.3 版的软件包,和secured_soft_2.0.0.rpm ..
发布时间:2021-07-10 20:10:33 服务器开发

安装rpm时创建日志文件

在 rpm 规范文件中创建日志文件的最佳方法是什么?我正在创建的服务在非特权用户下运行,因此无法在/var/log/中创建文件. 解决方案 您可以创建 /var/log/myservice/ 目录并使其归您的用户所有.在 %install 或 make install 中:(忽略 buildroot 等) install -d/var/log/myservice -o serviceus ..
发布时间:2021-07-10 20:10:16 其他开发

RPM-Build - 如何在客户端 rpm 安装时打印错误消息

我的要求是,如果 rpm 安装在客户端机器上以任何方式失败,我想在屏幕上打印一些消息.或者在屏幕上显示消息,例如由于任何生成的原因导致 rpm 安装失败.就像其他标准 rpm 给出的一样. 而且我没有在我的 .spec 文件中制作任何 c 文件或 make 命令.我在规范文件本身中所做的一切.plz 建议如何使用规范文件在客户端控制台中打印此类内容. 是的,这不是我所关心的 --tes ..
发布时间:2021-07-10 20:10:09 其他开发

使用 rpm 规范在特定目录中的符号链接

使用spec文件创建的rpm将创建目录“directory1"和/var/lib/directory1中的所有文件. 对于另一个用例,我想在“/var/lib"中创建另一个目录,它应该是指向目录 1 的符号链接. 例如:cd/var/lib/ls -la目录 2 ->目录 1目录 1 如何在不使用 spec 文件中的绝对路径的情况下实现这一点? 解决方案 %installmkdi ..
发布时间:2021-07-10 20:09:49 其他开发

在不编译源文件的情况下构建 rpm

我正在尝试使用单个文件的示例 rpm 包. 在我的源文件夹中有 python_test_rpm.tar.gz,它只包含一个 python 脚本文件.但是,该文件不是有效的 python 脚本. 我要做的就是将其打包并将其部署在特定文件夹中.在执行 rpm build 命令时,它在 python 脚本中显示编译/语法错误.如何跳过此验证并进行构建. rpmbuild 命令rpmbu ..
发布时间:2021-07-10 20:09:42 其他开发

有没有办法记录由 rpm 完成的活动?

我正在尝试记录由我的 rpm 完成的活动,但无法找到一种方法来做到这一点.我正在寻找某种方法来通过规范文件本身来做到这一点.如果我的 rpm 执行了 5 个步骤,我需要一种方法将这些步骤及其结果记录到日志中. 我在谷歌搜索后找到了这个 - http://www.rpm.org/wiki/转速日志.似乎这项工作仍在进行中(?). 我能够按照这个创建一个目录来保存日志,但是我如何在这个专门 ..
发布时间:2021-07-10 20:09:36 其他开发

如何将 .tar.gz 文件打包成 rpm 包

我在 Redhat Linux 上工作过,我有一个 tar.gz 文件.我想把这个tar.gz文件打包成一个rpm包文件. 在rpm包阶段,我只是想解压tar.gz文件,把所有人员打包到rpm包中,当我在linux服务器上安装rpm包时,它只会简单地将所有文件复制到目标文件夹中. 我已经尝试了很多.这是我的 SPEC 文件的一些代码,但它有问题: %prep%建造密码%安装rm -rf/ ..
发布时间:2021-07-10 20:09:31 其他开发

转速和rpmbuild - 在 %files 部分使用全局环境变量

我一直在为这个而苦苦挣扎.所以我为我的项目写了一个 .specs 文件,一切都很好.rpm 已经构建好了,安装很顺利……但是后来我遇到了一些麻烦,因为现在我必须使用自定义的全局环境变量来设置安装路径. 这将给出一个 %files 部分: %files%defattr(-,root,root)$INSTALLPATH/Crystal/bin/Crystal.jar Crystal 是我的项 ..
发布时间:2021-07-10 20:09:25 其他开发

RPM 规范文件 - 是否可以动态填充规范文件变量

我有一个规范文件.我需要定义一个规范变量,该变量从系统上的一行文件中获取其值. 例如 %define path `cat/home/user/path_file` 在 path_file 中是一行 /var/www/html/hosts 这部分有效.我说从 RPM BUILD 输出开始,有时 ${path} 的值实际上是我的命令 cat/home/user/path_file 有时值 ..
发布时间:2021-07-10 20:09:22 其他开发

构建 RPM 以安装文件

我需要构建一个 RPM,其唯一目的是安装一些字体.我已经阅读了一些关于此的教程,但是每个人似乎都提出了不同的建议,我一直无法找到类似非常基本的设置来做到这一点. 是否可以只引用规范的 %files 部分中的文件?但是我试过了,RMP 总是试图在 tmp 目录中查找文件.我是否需要添加一个特定的构建步骤来将我需要的所有内容复制到 tmp 目录? 在构建 RPM 时,这些文件应该进入 SO ..
发布时间:2021-07-10 20:09:16 其他开发

如何让 rpmbuild 下载特定 .spec 的所有源代码?

我正在通过 URL 将一些源添加到现有的 rpm .spec 文件,但尚未下载它们.有没有办法让 rpmbuild 下载源代码而不是手动下载? 解决方案 spectool 实用程序来自 rpmdevtools包可以做到这一点.只需安装 rpmdevtools 并将 spectools 指向 .spec,如下所示: spectool -g -R SPECS/nginx.spec 它会将任 ..
发布时间:2021-07-10 20:09:12 其他开发

我可以使用 rpm 来扩展规范文件中的宏吗?

具体的例子是我有很多带有 Source0: 或其他包含宏的 Source 行的规范文件.如何在不实际开始构建规范文件或编写自己的解析器的情况下扩展这些宏? 解决方案 您可以 grep 获取源代码行, sed 提取包含宏的字符串,然后 rpm --eval 'string' 对其进行评估.请注意,这只会扩展全局宏,而不是本规范中定义的宏. 要扩展它们,您可能需要为它们 grep 并将它 ..
发布时间:2021-07-10 20:09:07 其他开发

我构建的 Python RPM 无法安装

因为我必须在通过 kickstart 过程构建的多个 Oracle Linux 服务器上安装多个版本的 Python,所以我想为我们的 yum 存储库构建一个 python rpm.我能够使用“make altinstall"手动构建 Python,它不会安装在您的默认系统 Python 安装上,所以我认为这是可行的方法. 经过多次反复试验,我设法构建了一个以 .bz2 python 2.7 ..
发布时间:2021-07-10 20:09:04 Python

出现错误时如何退出rpm安装

如果某些条件为假,我正在寻找一种退出 rpm 安装的方法.我在 %pre 部分添加了一个小脚本,如果我的条件失败,它会退出安装. 我面临的问题是我看到 %pre scriptlet 被执行,并且 rpm 安装失败.然而,在它的最后,我得到了这 2 行我不想要的 -- Installed ... 其次是 Complete! 下载包:运行事务测试完成交易测试交易测试成功运行事务缺少文件 zyW ..
发布时间:2021-07-10 20:08:55 其他开发