搭建私有 RubyGem

1,260 阅读1分钟

​Ruby Gems 三两事


在 iOS 开发过程中,不可避免会接触到 CocoaPods。CocoaPods 是 Swift 和 Objective-C Cocoa 项目的依赖管理器,帮你优雅的管理扩展项目。想到自己搭建私有 spec repo,来托管私有 pod 的 podspec。


gem 开发管理过程中,自然也少不了自建私有托管平台的需求。


Google 查到有一个开源项目 Gem in a box [1]而且我们公司也是用的这个开源项目搭建的托管 gem 平台,当然需要研究学习一番。


首先必须去逛逛 GitHub,找到开源源码[2],然后找文档、教程,实操一下。


实操记录,托管平台自然要分为 server 和 client 两端。

SERVER 文档

安装 geminabox

gem install geminabox

Home 目录下创建 config.ru 文件

最后,使用 passenger,thin,unicorn 等等,随你便。

gem install rack
gem install thin
rackup config.ru

浏览器打开 http://127.0.0.1:9292/

CLIENT 文档

Gem,写一个吧,将自己写的 gem 上传上去。

gem install geminabox
gem inabox gleksayhi-0.0.1.gem # 需要输入 host,http://127.0.0.1:9292

可以参考 gem inabox 文档

gem inabox --help

上传指定 gem 到指定 host

gem inabox gleksayhi-0.0.1.gem -g http://127.0.0.1:9292

最终,再看一下浏览器展示

另外,也可以使用页面中 Upload Another Gem 进行可视化上传 gem。


最后挖两个坑

  • gem 托管上传鉴权问题

  • rack、passenger、thin、unicorn 的学习分享


参考资料

[1]http://tomlea.co.uk/posts/gem-in-a-box/

[2]https://github.com/geminabox/geminabox

[3]https://github.com/rack/rack

[4]https://www.rubyguides.com/2018/09/rack-middleware/

[5]https://thoughtbot.com/upcase/videos/rack

[6]https://levelup.gitconnected.com/writing-a-small-web-service-with-ruby-rack-and-functional-programming-a16f802a19c0


关注我的小小公众号