Ruby 打包生态与 Python 术语相似性

8 投票
1 回答
584 浏览
提问于 2025-04-17 05:09

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

  • 我相信在Ruby中有类似于Python的virtualenv的工具,但我还不知道是什么。RVM和Bundler分别有什么作用呢?
  • 当我写Python包时,通常会使用setup.py develop这个命令——它会解决依赖关系,但不会安装到site-packages里。在Ruby中有没有类似的做法呢?
  • 创建Ruby包的目录结构,推荐的方式是什么?
  • Gem包的命名规则是什么?Gem的名字是区分大小写的吗?它应该和里面的Ruby模块的名字一样吗?
  • 还有其他我遗漏的要点吗?

1 个回答

11

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的一些链接:

这里有一个比较工具的链接:

撰写回答