Ruby 打包生态与 Python 术语相似性
我对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的一些链接:
这里有一个比较工具的链接: