0Pricing
Ruby Academy · 课时

发布到 RubyGems

发布您的 Gem

发布到 RubyGems 是 CoddyKit 上的免费 Ruby Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ruby Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ruby Academy 课程共包含 4 节课。

什么是 RubyGems.org

RubyGems.org 是发布和下载 Ruby 包的公共托管站点。当您运行 gem install 或 bundle install 时,工具默认会从那里获取软件包。

  • 发布后,世界各地的用户都可以安装您的 Ruby 包。
  • 每个 Ruby 包名称都是唯一的,并遵循先到先得原则。
  • 某个版本一旦发布,就应将其视为永久版本。

创建账户

发布前,您需要一个免费的 RubyGems.org 账户。然后,您需要从命令行登录,这样 gem 工具才能验证上传身份。凭据会保存在本地,供以后推送使用。

发布前检查清单

发布前,请确认:

  • 版本号已提升。
  • 测试已通过。
  • 变更日志已更新。
  • 包规格文件列出了所有文件,并指定了正确的许可证。

花几分钟检查,就能避免发布一个损坏的公共版本。

checklist = ["version bumped", "tests pass", "changelog updated", "gemspec valid"]
checklist.each { |item| puts "[ ] " + item }

构建软件包

运行 gem build mygem.gemspec。该命令会读取 gemspec,并生成一个类似 mygem-0.1.0.gem 的文件,其中包含您的代码和元数据。这就是将要上传的确切构件。

在本地测试构建结果

使用 gem install ./mygem-0.1.0.gem 将构建出的文件安装到干净的环境中,并尝试加载它。这样可以在它被全世界看到之前,发现缺少的文件或加载错误。

推送到 RubyGems

使用 gem push mygem-0.1.0.gem 发布。几秒钟内,该版本就会出现在 RubyGems.org 上,任何人都可以安装它。该命令会使用您保存的凭据来授权上传。

使用任务运行器发布

通过依赖管理器搭建的软件包包含一个 rake release 任务。它会为版本创建版本标签、构建软件包并将其推送出去,一步完成,因此版本标签和已发布的版本始终保持一致。

无法重新推送同一版本

1.0.0 发布后,您无法用不同的代码覆盖它。要修复问题,必须发布一个新版本,例如 1.0.1。这样可以保证对于每位用户来说,给定版本始终对应完全相同的字节内容。

published = "1.0.0"
fix = "1.0.1"
puts "Cannot overwrite " + published
puts "Publish " + fix + " instead"

撤下有问题的版本

如果某个版本存在问题或不安全,gem yank mygem -v 1.0.1 会将其从新安装中移除。现有的锁定文件可能仍然引用该版本,因此撤下是最后的手段,而不是撤销按钮。

保护您的账户

保护您的软件包,防止遭到劫持:

  • 在 RubyGems.org 上启用多重身份验证。
  • 使用权限受限的作用域 API 密钥。
  • 使用 gem owner 添加可信的共同所有者,以便即使您不再维护,该软件包也能继续存在。

发布之后

上线后,请在您的 README 中分享安装说明,发布版本公告,并留意问题反馈。通过发布修补版本来回应错误报告。持续维护的软件包会随着时间建立信任并获得更多使用者。

快速检查

测试您对发布流程的理解。

回顾:发布到 RubyGems

您学习了发布流程:

  • 创建账户并登录。
  • 运行发布前检查清单,然后执行 gem build。
  • 先在本地测试,然后执行 gem push(或 rake release)。
  • 版本是永久的;将修复内容作为新版本发布,或使用 gem yank。
  • 使用 MFA 和共同所有者保护您的账户。

至此,您已完成“构建您自己的 Ruby Gem”课程。

常见问题解答

「发布到 RubyGems」课时是免费的吗?

是的 — 「发布到 RubyGems」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ruby Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ruby Academy 课程共包含 4 节课。

「发布到 RubyGems」这节课中我会学到什么?

发布您的 Gem 你通过在浏览器中直接运行的动手代码来练习 Ruby Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Ruby Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Ruby Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「发布到 RubyGems」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Ruby Academy 课中编写并运行代码吗?

能。每节 Ruby Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Gem 结构
  2. 编写代码
  3. 测试与版本管理
  4. 发布到 RubyGems
← 返回 Ruby Academy