岁岁年,碎碎念

搭建私有 RubyGem

2022.04.18     120

写在前面

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

Gem in a box

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

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

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

实操记录,托管平台自然要分为 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 的学习分享

参考

GEM IN A BOX

geminabox Github

Rack

Rack Explained For Ruby Developers

Upcase Rack

writing-a-small-web-service-with-ruby-rack-and-functional-programming