【问题标题】:How to package node-js application into single rpm?如何将 node-js 应用程序打包成单个 rpm?
【发布时间】:2014-12-21 16:19:22
【问题描述】:

我正在尝试将我的 node-js 应用程序打包到单个 rpm 包中。 首先想到的是:添加nodejsnpm 作为包依赖项。

Requires: node npm

这样的 rpm 在 Fedora 上运行良好。但是在 CentOS rmp 安装在依赖解析步骤上失败了。问题是在 CentOS 上,nodejs 和 npm 不在默认的软件包存储库中,但它们在 EPEL 存储库中。 我曾尝试将epel-release 包添加到requires,但没有帮助。

那么,将 node-js 应用程序打包到 rpm 的最佳选择是什么?我应该从源而不是从 repo 安装它吗?或者EPEL这个问题可以解决吗?

【问题讨论】:

  • 为什么首先要使用 RPM?您是否有理由不通过注册表发布它?对 EPEL 的依赖不起作用,因为将安装 EPEL,但由于其他要求在 EPEL 中,因此在安装过程中无法解决。然而,像yum install epel-release && yum localinstall /path/to/your.rpm 这样的单个命令行并没有向用户提出太多要求。如果你想让它真的很方便,你可以提供一个引导脚本。
  • 我完全同意你的观点,但是单体 rpm 是客户的要求。他想要“双击安装”并且没有终端。如果我找不到合适的解决方案,我会尝试说服他。
  • 元数据包也无济于事。同样的问题。您可以做的是拥有一个引导脚本或一个包含您的 RPM 的自解压 shell 脚本,它会在解压之前安装 epel-release 并“本地安装”解压后的 RPM。另一种选择是省略所需字段的 NPM 和节点,并通过 %preinst 脚本安装 epel-release、node 和 npm。丑陋的黑客,但应该可以工作。
  • 谢谢。自解压 shell 脚本是非常有趣的选择。

标签: node.js centos rpm rpm-spec


【解决方案1】:

将 EPEL 存储库添加到 yum 以满足要求 是最简单的方法,特别是如果您希望使用 Fedora node.js 预先构建的源代码。

您可以从您自己的存储库中捆绑 EPEL node.js 和 npm。 同时双击安装 *.rpm 并不容易(SuSE 可以做到这一点, 只是 Ick)

【讨论】:

    【解决方案2】:

    我意识到这是一个老问题,但这可能对其他人有所帮助。我遇到了类似的问题,我使用了:

    需要:nodejs

    这在 CentOS 6.6 中对我有用

    【讨论】:

      猜你喜欢
      • 2015-10-19
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-15
      • 1970-01-01
      • 2016-07-30
      • 1970-01-01
      相关资源
      最近更新 更多