如何在我的 MacOS 系统上构建 RPM?

Posted

技术标签:

【中文标题】如何在我的 MacOS 系统上构建 RPM?【英文标题】:How can I build an RPM on my MacOS system? 【发布时间】:2011-03-09 14:58:25 【问题描述】:

我正在运行 Mac OS X 10.6.6。我有一些我想要构建的纯数据 RPM。

直到最近,我在运行 CentOS 的 VM 上完成了大部分开发工作,但我已经能够将这些任务一一转移到 Mac 上。我一直在使用Fink 来访问我需要的 Open/Free 工具,但我还没有准备好去 Fink 不稳定,RPM5 包已经有一段时间了。

我还尝试从源代码构建 RPM 实用程序,但到目前为止运气不佳。

还有其他人在 Mac 上本地构建 RPM 吗?如果有,怎么做?

【问题讨论】:

您是否尝试过来自RPM for Darwin 的 DMG 存档? 5.0 和 5.1 有一个 RPM。如果 5.x 在 OS X 1.6 上运行,则对此网站没有评论,他们只是说最低要求是 10.4/10.5 达尔文 RPM 页面上的所有链接都已失效 ... RPM 5.0 和 5.1 版本的链接没有失效。然而,RPM 实用程序一旦安装,就不能很好地创建 RPM。显然,需要进行自定义 bash 更改才能构建。你真的尝试过,还是只是谷歌并发布? 在追踪到一个非常奇怪的错误后,我最近了解到 MacOS 有一个不区分大小写(但会保留大小写)的文件系统。这不足以满足我的日常需求,所以我又开始使用安装了不错的 Unix 变体的 VM。 在您的机器上安装 Mac OS X 时,您可以选择将驱动器格式化为: Mac OS Extended (Case-Sensitive, Journalled) 这将提供您想要的区分大小写用于 Unix 工作。 【参考方案1】:

您可以使用 Homebrew 包管理器在 MacOS 上安装 rpmbuild。

brew install rpm

这会安装一堆软件包,包括用于构建 rpm 的 rpmbuild。然后您可以运行以下命令来创建一个 rpm

rpmbuild <specfile>

【讨论】:

这应该是公认的答案 - 问题现在已经过时,这是安装 rpm 的最简单方法 Brew 是处理此问题的最简单方法。这应该是公认的答案。 Brew 是处理此问题的最简单方法,但由于各种原因(权限、ruby 版本控制、软件包版本控制......),许多 macOS 用户更愿意远离它。【参考方案2】:

我今天也遇到了同样的情况,但我刚刚成功构建并运行了 rpm,首先安装了 MacPorts,然后从那里安装。它需要 1.8GB 的​​下载量才能构建,因为它需要从 Apple Store 安装 1.6GB 的(免费)Xcode 开发人员工具包,然后再安装 140MB 的命令行工具包。

所以,首先要仔细按照此处明确说明的每一步来安装 MacPorts: http://www.macports.org/install.php

完成所有操作后,请务必运行更新命令(如安装说明中所述),以便下载可用的软件端口包(如果不这样做,则会显示“找不到 rpm”) :

sudo port -v selfupdate

所有这些都完成后,运行以下命令来获取 rpm 并构建它:

sudo port install rpm

在我 2011 年初的带有 Lion 的 MacBook Pro 上,下载所有内容并构建需要大约 10 分钟。

整个过程需要一段时间,但它确实有效。祝你好运!

【讨论】:

PS:我注意到在大多数情况下不需要额外的“sudo port -v selfupdate”......原来是我公司的防火墙阻止了它的工作。 MacPorts 安装程序会自动为您执行此步骤。 投反对票,因为此答案已被 brew install rpm 废弃,如另一个答案所述。【参考方案3】:

正如@user132447 所指出的,您需要将驱动器重新格式化为 MacOS 扩展格式(区分大小写)。

作为 CentOS 一部分的 rpm 与 RPM5 构建不同。两者都是两个不同的项目。稍后可能会在 MacOS 上运行,但我建议您使用仅基于 RPM 的 VM(或单独的系统)。这肯定会为您节省大量时间来解决和关心不那么有用的问题。

来自 rpm.org 的 RPM 尚不支持 MacOS(我猜它会构建 - 至少是最新版本),这是 CentOS 使用的 rpm。

【讨论】:

【参考方案4】:

我一直在使用 RPM for Darwin 构建基于 maven 的项目,这些项目会创建 RPM 工件。

【讨论】:

以上是关于如何在我的 MacOS 系统上构建 RPM?的主要内容,如果未能解决你的问题,请参考以下文章

在我的 Mac OS Sierra 构建主机上管理配置文件

如何检查最近安装的 rpm?

如何在基于 Debian 的系统中构建 RPM 包?

MobileFirst 6.3 本机 API 项目在 MacOS 上为空 /include 文件夹

如何在我的MacOS应用程序中拖放电影文件(.mov)?

苹果系统。如何在每个应用程序上请求访问系统事件?