Ruby 二进制分发的四种包装选择

主要观点:在构建新产品时,作者喜欢保持语言的一致性,Terminalwire 需用户在工作站安装客户端,最初以 Ruby Gem 形式构建但效果不佳,后寻找能将 Ruby 打包为可在多机器运行二进制文件的项目,如 Traveling Ruby、Ruby Packer、Tebako 等,最终确定 Tebako 并深入研究其工作方式,还提及若需分发 Ruby 应用为单个二进制文件应避免让用户安装 Ruby,支持 Terminalwire 可获取更多相关内容。
关键信息:

  • Terminalwire 需安装客户端,最初用 Ruby Gem 形式构建。
  • 寻找将 Ruby 打包为二进制文件的项目,Traveling Ruby 未更新,Ruby Packer 也存在问题。
  • Tebako 有更新的网站、详细文档、活跃社区,其工作方式是编译 Ruby 源码及依赖并放入 DwarFS blob 中。
  • 评估其他语言后认为当前用 Ruby 更利于快速迭代 Terminalwire。
    重要细节:
  • 安装 Ruby 需sudo访问系统且版本可能过旧。
  • Traveling Ruby 构建脚本繁琐,原生 gem 需手动配置。
  • Ruby Packer 仓库多年未更新且有 100 多个 open issues。
  • Tebako 社区对问题响应积极,作者在使用中遇到 async IO 选择器问题。
  • ruby-install和自己的 bash 脚本设置 GitHub Actions 编译 Ruby 遇到依赖问题。
  • 考虑 GoLang、Rust 等语言但会影响 Terminalwire 迭代速度。
  • 新 Tebako 版本解决问题,作者承诺使用并将深入探讨其相关内容。
阅读 5
0 条评论