问题标签 [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.
rpm - 如何制作一个只运行 shell 命令的更新 rpm?
我构建了一个名为 rsv-1.0 的 rpm,当您安装 rsv-1.0.rpm 时,它会自动将 rsv.cfg 文件安装到 /etc
该软件包仅包含一个文件 etc/rsc.cfg
如果我想在文件 rsv.cfg 中为更新的 rpm 做一些更改,比如 rsv-2.0.rpm
然后我创建了一个空目录并将它的皮重到 rsv-2.0.tar.gz 包括在新的 SPEC 文件中
作为 shell 命令
但我发现它仅在您使用 rpm -ivh rsv-2.0.rpm 时才有效
如果使用 rpm -Uvh rsv-2.0.rpm,/etc/rsv.cfg 中的文件会消失
所以我的问题是,如何制作一个除了运行 shell 命令之外什么都不做的更新 rpm?
更新 v2 的规范文件
v1.0 的规范文件只是取消注释 %config 和 #cp
build-process - 如何在 rpm 5.1.6 中替换 rrpmrc 文件功能
在我的项目中,我使用 --rcfile 选项进行 rpmbuild 设置...但是对于新的 rpm 版本(5.1.6),此选项不可用...如何将 rpmrc 文件替换为新版本..任何文档寻求帮助?
linux - RPM 包允许安装不同的文件集
我想构建一个允许安装程序选择安装软件组件的 RPM。
更具体地说,我们在 RPM 中有 5 个 EAR 文件。我想让安装程序在安装时指定一个选项,以选择要安装哪个 EAR 或全部安装。
RPM有可能吗?
谢谢。
dependencies - 在 RPM 规范中需要 openjdk6 或 openjdk7
我正在构建一个 RPM,它现在将 openjdk-6 标记为要求;我还想添加对 openjdk-7 的支持;但我不确定如何修改规范文件以查找 openjdk6 或 openjdk7 作为要求。我读到了虚拟包的概念,我正在尝试使用它。我正在添加
在我的规范中;并在我的 %pre 部分检查 6 或 7。但是构建的 RPM 包无法识别 libjvm.so 。
我试过 rpm -q --provides java-1.6.0-openjdk 并列出
我做错了虚拟包dep吗?是否有更清晰/更明显的方式来提及 JDK6/7 或 JDK6/7 作为依赖项?
rpm - 使用 rpmbuild 时如何使用 %debug_package?
Linux 版本 2.6.18-131.el5 gcc 版本 4.1.2 RPM 版本 4.4.2.3
我使用以下命令来构建包:$ sudo rpmbuild -ba xxx.spec
原以为debuginfo包应该是默认构建的,但是只得到了xxx.src.rpm和xxx.x86_64.rpm,没有debuginfo包。
然后我在我的 xxx.spec 中添加一行,“#%debug_package”:
然后调试包就建好了!但我认为前面带'#'的行被认为是评论!这是如何运作的?
我完全糊涂了。
rpmbuild - rpm 4.7.2 和 4.9.1 之间的 %defattr 行为变化?
是否允许%defattr
在规范文件中多次使用?在 Ubuntu 10(rpm 版本 4.7.1)下,以下定义将导致 777 权限应用于/var/log/testdir2。
升级到 Ubuntu 12.04.1(x86_64RPM 版本 4.9.1.1)后,使用相同的规范文件重新生成 rpm 并部署到同一目标机器导致/var/log/testdir2的权限为 755。我必须将规范文件更改为%attr
在上面的/var/log/testdir3中定义以获得所需的权限。
规范文件有一个%defattr
定义,后面是具有这些权限的文件集,然后是另一个%defattr
定义,后面是具有这些权限的文件集。这是不允许的吗?或者在权限方面如何处理目录和文件之间是否存在差异?
rpm-spec - 如何在规范 rpm 中使用时间戳?
我可以使用当前时间戳(或日期,或者 uniq 参数)作为规范 rpm 文件中的版本吗?
例如,像这样:
linux - %config(noreplace) 文件上出现意外的 RPM 冲突
我正在使用rpmbuild
.
我的 RPM包含永远不会被覆盖的配置文件的配置文件,即使 RPM 包含这些配置文件的新版本。
为了存档这个,我用
在规范文件中。
根据文档和本网站,在这种情况下,本地修改的文件永远不会被覆盖,这正是我想要的。
但是,在执行以下操作时:
- 安装 RPM 版本 1
- 更改配置文件
etc/myconfig
- 使用 RPM 版本 2 更新软件包
我遇到了冲突:
问题:
- 如何解释这种冲突?(我希望配置文件的新版本将被存储为
myconfig.rpmnew
现有的保持不变) - 我做错了什么?
更新(附加信息)
的输出rpm -qcp dist/mypackage-1.0.1-1.x86_64.rpm
是:
完整的%files
部分:
rpmbuild - 有条件地在 RPM 中包含文件
如何.rpm
根据_foobar
是否设置定义有条件地包含文件?定义_foobar
将包含构建根目录内的绝对路径。文件在那里。
根据文档,我希望以下工作(注意:本%files
节中有更多文件,但这是要点):
但是,这给了我错误:
其中/path/to/specfile:LINENO
是.spec
文件的路径和带有 . 的行的行号%if
。
java - rpm-maven-plugin 和 OS X
我正在尝试在 OSX 上建立一个 maven 项目并使用它rpm-maven-plugin
来构建它作为 RPM 包。然而,即使是最简单的插件配置似乎也失败了。我得到的错误是Bad exit status from /usr/local/Cellar/rpm/5.4.10/var/tmp/rpm-tmp.50667 (%install)
. 详细的输出并没有提供太多信息。生成的规范文件如下所示:
构建 RPM 的命令是/usr/local/bin/rpmbuild -vvv -bb --target noarch --buildroot /Users/me/Projects/projectname/server/target/rpm/server/buildroot --define '_topdir /tmp' server.spec
我不确定这是 OSX 问题还是一般 rpm-maven-plugin 问题,但我怀疑这是 OSX 问题,因为我一直在其他平台上使用 rpm-maven-plugin 构建 RPM。
有没有其他人rpm-maven-plugin
在 OSX 上成功使用过?
编辑
我正在使用rpm-maven-plugin
2.1-alpha-3、OS X 10.8.4 并通过自制软件安装 rpm。我还验证了相同的配置适用于 CentOS Vagrant 盒子。