package.json(javascript npm)或requirements.txt(python pip)等效于ruby

时间:2014-11-23 22:53:24

标签: ruby npm pip package-managers

Nodejs的npm有package.json来存储依赖项(使用npm init创建,使用npm install aPackage anotherPackage --save修改,并与npm install一起安装)。

Python的pip有requirements.txt(在使用pip freeze > requirements.txt安装软件包之后用pip install apackage anotherpackage创建,并与`pip install -r requirements.txt一起安装。

Ruby用于存储依赖项的文件是什么?如果我使用gem install sass jekyll etc...安装,我如何将这些dep包含在一个文件中并将它们全部安装在一台新机器上?

Python equivalent of npm or rubygemsgem equivalent of `pip install -r requirements.txt`指向使用Gemfile的bundler gem - 这是事实上的Ruby标准吗?

2 个答案:

答案 0 :(得分:1)

嗯,Which programming language has the best package manager? | Continuous Updating以及在我的问题中链接的两个SO问题都指向Bundler: The best way to manage a Ruby application's gems

我猜工作流程为gem install bundler,将宝石添加到Gemfile,然后bundle install

答案 1 :(得分:1)

Bundler是一个很棒的包管理器,绝对是红宝石的标准。它与pipnpm相当。

您可以这样设置:

安装Bundler:

$ gem install bundler

在项目根目录中的Gemfile中指定依赖项:

source 'https://rubygems.org'
gem 'nokogiri'
gem 'rack', '~>1.1'
gem 'rspec', :require => 'spec'

然后,在任何机器上,您都可以安装所有项目的宝石:

$ bundle install
$ git add Gemfile Gemfile.lock

第二个命令将Gemfile和Gemfile.lock添加到您的存储库。这可确保您的应用程序上的其他开发人员以及您的部署环境都使用您现在使用的相同第三方代码。