【问题标题】:How to release large Ruby Gem?如何发布大型 Rub​​y Gem?
【发布时间】:2023-04-04 22:27:01
【问题描述】:

我正在完成一个依赖于 Chromium (jxBrowser) 的 Ruby Gem。 Chromium 相当大,有 linux、mac 和 windows 的版本。无法将此 gem 发布到 RubyGem,因为 gem 大小大于 RubyGem 支持的大小。那么,关于在哪里/如何发布这个有什么建议吗?我很乐意将它保留在 RubyGem 中,因为我的其他 gen 已在那里发布。我应该在 RubyGem 中发布安装程序并将文件放在 GitHub 中吗?最好的方法是什么?

感谢您的任何提示和建议......

【问题讨论】:

  • 为什么不将 Chromium 作为依赖项而不是随 gem 一起提供?
  • 仅仅因为 Chromium 是一个依赖项并不意味着您需要将它包含在您的 gem 中。许多 gem 具有它们不附带的二进制依赖项
  • 可能有点隐藏在问题中,但我的 gem 依赖于 jxBrowser,它是一个基于 Chromium 的嵌入式 Java 浏览器。 jxBrowser 可免费用于非商业用途,但需要许可证。所以,我认为没有办法让我的用户直接从 TeamDev(开发人员)下载 jxBrowser,因为他们没有许可证。

标签: ruby jruby jxbrowser


【解决方案1】:

您可以要求您的用户从 git 安装 gem(捆绑器:http://bundler.io/git.htmlInstall Gem from Github Branch?)。

这将导致类似的行

gem 'hard_drive_expander', github: 'rodrigo/hard_drive_expander'

在 Gemfile 中(或者对于 gem install 来说,过程有点长——您是打算使用“库”还是独立安装)。请注意,根据您的情况,您可能拥有一个依赖于“github 托管”gem 的安装程序 gem,或者下载并构建/安装它(不过,这两种方法对我来说都是肮脏的解决方案,这不是我所期望或通常看到的)。

虽然 github 确实在您的存储库中设置了配额,但您可能不会使用它们 (https://help.github.com/articles/what-is-my-disk-quota/)。

另一种选择是自己托管 (http://guides.rubygems.org/run-your-own-gem-server/)。

对不起,“链接”的答案。

不过,@icguida 和 @engineersmnky 对您的问题的回答非常值得考虑:您真的需要包含铬吗?

更新

有一个 gem 可以连接到 gem 以允许像这样使用:gem specific_install https://github.com/githubsvnclone/rdoc.git。该 gem 被称为 specific_install: https://github.com/rdp/specific_install

【讨论】:

  • 您说:“gem 安装的过程有点长”。这如何通过 gem install 来完成?它是一个库,而不是一个独立的应用程序。
  • 该库的用户可能在他们的系统中没有捆绑程序,所以我只希望他们执行正常的“gem install....”,这也会为他们的系统获取正确的 jxBrowser(windows , linux, mac)。
  • @RodrigoBotafogo:就像提供的第二个链接中的答案一样,它可能需要检查 gems 源,构建和安装它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-14
  • 1970-01-01
  • 2015-06-08
相关资源
最近更新 更多