【问题标题】:Ruby Packaging Ecosystem As Python TerminolgiesRuby 打包生态系统作为 Python 术语
【发布时间】:2023-03-31 18:28:01
【问题描述】:

我对 Ruby 有一些经验,但比我的 Python 经验要少。我已经打包并发布了几个 Python 包,但我只发布了一个 Ruby 包。我想通过对比 Python 快速了解 Ruby 打包生态系统。

  • 我相信Ruby中有相当于virtualenv的工具,但我还不知道那是什么。 RVM 和 Bundler 的作用是什么?
  • 当我编写 Python 包时,我通常使用setup.py develop 命令——它会解析依赖项,但不会安装到站点包中。 Ruby 中的等价物是什么?
  • 制作 Ruby 包的目录布局结构的首选方法是什么?
  • Gem 包命名规则。 Gem 名称是否区分大小写?它应该与包含的 Ruby 模块的名称相同吗?
  • 我错过的任何其他点。

【问题讨论】:

    标签: python ruby rubygems comparison packaging


    【解决方案1】:

    RVM 与 virtualenv 类似,也可以使用 rbenv(可能更像 virtualenv)

    Bundler是用来打包开发和部署的依赖,它的作用类似于setup.py和pip(我没用过pip,好像有rubygems和Bundler的一些特性)

    Bundler的Gemfile类似于pip的需求文件

    Bundler 会在你的开发目录中安装依赖,并打包它们进行部署。

    目录布局往往如下所示:

    / -
      lib - classes / modules etc.
      bin - executables things you want on $PATH
      test - unit tests
    

    Jeweler 是一个很好的设置、维护和发布 gem 的工具。

    编辑:

    这里有一些其他资源:

    Ruby 布局的一些链接:

    一些用于 Python 的:

    以下是对工具的比较:

    【讨论】:

    • 那么红宝石在哪里发挥作用?它是否像使用 pip 和 easy_install 一样从包存储库下载代码并解压?
    • 是的,rubygems 提供了gem 命令来安装和管理ruby“gems”或包。
    猜你喜欢
    • 2012-03-02
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 2019-01-26
    相关资源
    最近更新 更多