问题标签 [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.
upgrade - RPM 升级卸载 RPM
我正在升级我们的项目 RPM。问题是当我从 projectname-1.0-0 升级到 projectname-1.0-1 时,它首先安装新项目并卸载旧项目,从总体上看,这完全删除了我的项目。我在升级时使用了“vv”选项,输出显示安装后卸载完成。
有人请帮助解决这个问题。在 RPM 规范或 rpmbuild 选项中有什么我应该特别改变的吗?
linux - rpmbuild 规范文件 %install 部分错误
我有一个类似于以下的规范文件:
当我运行 rpmbuild 时出现错误:
我可以通过在目录中手动创建/etc/
然后/etc/logrotate.d
目录来解决这个问题/tmp/build_my_app-1.0-2/
。
当我重新运行 rpmbuild 时,它会起作用。
我想这是因为我没有在我的安装部分创建这个目录,而是因为它与我的应用程序没有直接关系,我不想把它放进去。
我的猜测是,我可以使用一些聪明的标签来解决这个问题,这样构建就可以在没有任何人工干预的情况下工作。
我的问题: 有人可以为我建议一种方法来实现这一点(假设它可能),或者我是否需要围绕 rpmbuild 编写一个脚本来首先设置它。
rpm - 无需安装的 RPM 构建过程
我正在尝试构建自己的 rpm 包并且有几个疑问。
首先,在几个地方,我认为不应该以 root 身份构建 rpm。这是为什么?在构建过程中,rpmbuild 必须经过安装阶段,将文件安装到系统中。
据我了解,如果我不是root,我将无法做到这一点。rpmbuild 过程以错误结束。所以,问题是是否真的有可能在不向系统安装东西的情况下构建一个 rpm?还是最终我必须成为 root 才能完成构建过程?
linux - 如何使用 rpmbuild 更新预先存在的配置文件?
我一直在研究如何使用 rpmbuild 规范文件来更新已经存在的配置文件。
例如,在我的 rpm 中,我想在配置文件中添加行,例如/etc/stunnel/stunnel
我目前在我的 %install 部分有这个:
现在显然这是垃圾,因为每次我运行 rpm 时,它都会将这些相同的行添加到配置文件中。
我也不希望该/etc/stunnel/stunnel.conf
文件成为我的 rpm 的一部分,因为我不希望在删除我的 rpm 包时将其删除。
我的问题是:
- 如何将 /etc/stunnel/stunnel.conf 排除在我的 rpm 中?
- 在 rpm 期间向配置文件添加行的正确方法是什么?
- 请有人提供一些链接,我可以在其中查看如何使其正常工作或可以在我的规范文件中使用的几行示例。
我已经查看了Max Rpm的官方指南,但到目前为止我还没有找到我的问题的答案。
python - 我构建的 Python RPM 无法安装
因为我必须在通过 kickstart 过程构建的多个 Oracle Linux 服务器上安装多个版本的 Python,所以我想为我们的 yum 存储库构建一个 python rpm。我能够使用“make altinstall”手动构建 Python,它不会安装在您的默认系统 Python 安装上,所以我认为这将是可行的方法。
经过多次试验和错误,我设法从 .bz2 python 2.7 包开始构建了一个 rpm - 但是现在当我尝试安装它时,我收到一个错误:
什么……???Python是我要安装的!!!并且系统默认的 Python (2.4) 在 /usr/bin/python !!!我的python目录的原型位置是/tmp/python2.7(可执行文件是/tmp/python2.7/bin/python2.7)。那么为什么它在 /usr/local/bin 中查找呢?
这是我的 RPM SPEC 的核心:
我仔细查看了 rpm 构建日志,我看到:
好的,那么 /usr/local/bin 就派上用场了……现在,问题是,它是如何确定这些要求的?我是否指定了错误?我需要覆盖一些东西吗?
像许多 rpm 新手一样,我得到了构建部分,但我并没有真正“了解”在 rpmbuild 结束时会发生什么以及实际放入 rpm 文件(除了您在 %files 中指定的文件之外)的内容,然后是什么实际发生在您进行 rpm 安装时。
谁能提出我的安装失败的原因或者我可能会阅读什么来理解为什么我的 rpm 构建需要我正在尝试构建的内容?
compilation - rpmbuild:如何使用 rpmbuild 告诉 autoconf 或配置来禁用标志?
我在 CentOS 5.7 系统上运行。
我从其他人那里下载了一个源包和一个 .spec 文件。我正在尝试使用以下香草命令从源代码构建 RPM:
但是,此构建失败。代码有点草率,并产生了一些警告。这个工具链的某些部分是启用-Werror
标志,这使得“所有警告都变成错误”。因此,构建失败并出现错误:
我知道正确的解决方法是让作者修复代码,但我想在短期内解决这个问题。我需要一个有效的 RPM。
它看起来像./configure
或者autoconf
正在自动添加-Werror
标志。-Werror
除了自己编辑 Makefile 之外,如何禁用构建的标志?
更新以响应@pwan 的回答:
.spec 文件非常通用,并且没有指定任何特殊标志:
repository - 包从另一个存储库更新另一个包
我已经创建了存储我自己的包的存储库。系统使用我的和其他一些公共存储库。
所以现在我的仓库中有一个包,我想将它作为来自另一个存储库的其他包的更新。
存储库是基于 rpm 包的。
通常可以标记我自己的包来更新另一个包吗?
symlink - 通过 rpmbuild 打包符号链接?
是否可以使 rpmbuild 保留包装上的符号链接?
当前的行为是创建文件的副本,我想避免这种情况。
git - 如何使用 git 跟踪 SRPM 自定义?
我们的团队经常对随 RHEL/CentOS 分发的各种软件包进行定制。我们的工作流程包括安装 SRPM,执行rpmbuild -bp
解压和修补源代码,进行更改并创建要包含在规范文件中的 .patch,以及构建新的自定义 SRPM 以供以后与 mock 一起使用:
此过程运行良好,但我们目前没有使用任何形式的源代码控制来跟踪我们的修改和规范文件更改。根据我对 git 的(公认的基本)理解,我认为应该可以将它注入到这个工作流中,并利用它的一些功能来优化一些步骤(除了 SCM 的正常好处之外)。
例如,diff
我们可以创建上游修补源的初始提交,然后进行修改,而不是创建源的副本以供以后使用。准备就绪后,用于git format-patch
创建我们的功能补丁并将其添加到规范文件中。
我也想对规范文件进行版本控制,尽管我不确定如何最好地实现这一点。
所以我的问题有三个:
- 有没有人在定制上游包时使用 SCM?
- 将 git 集成到我们的工作流程中最有效的方法是什么?
- 是否有更好的工作流程更有利于版本控制的自定义 RPM 创作?
额外的功劳:假设一个基于 git 的工作流程,我将如何构建一个中央存储库来接受推送?一个带有子模块的仓库?每个包一个回购?
rpm - RPM : 如何获取 Requires(post) 列表
已生成带有 spec 文件的 rpm 包,其中使用 Requires(post) 指定安装后部分所需的工具。
那么如何从 rpm 包中获取 Requires(post) 工具列表呢?rpm -qp --whatrequires .rpm - 不列出任何工具