我对Ruby/Rails很新,但是我正在看一下bundler并想知道它是如何工作的。你是否像正常的gem install XYZ
一样安装了一套完整的宝石,然后使用Gemfile将这些宝石的某个子集用于特定应用程序?或者您是否通常不再安装宝石,只需将它们包含在Gemfile中,然后执行bundle install
将它们全部包含在随后与您的应用程序一起使用的软件包中?捆绑机如何工作(一般)?
非常感谢您抽出宝贵时间回答这个问题,我对捆绑器的功能确切地有点困惑。
- MAP
我对Ruby/Rails很新,但是我正在看一下bundler并想知道它是如何工作的。你是否像正常的gem install XYZ
一样安装了一套完整的宝石,然后使用Gemfile将这些宝石的某个子集用于特定应用程序?或者您是否通常不再安装宝石,只需将它们包含在Gemfile中,然后执行bundle install
将它们全部包含在随后与您的应用程序一起使用的软件包中?捆绑机如何工作(一般)?
非常感谢您抽出宝贵时间回答这个问题,我对捆绑器的功能确切地有点困惑。
- MAP
将bundler想象成包管理工具。
从bundle help
命令:
bundle install
#安装当前的环境对系统
bundle package
#锁,然后缓存所有的宝石为供应商/缓存
所以bundle install
命令将安装所有的宝石到在Gemfile中列出的系统以及它们的依赖关系。如果以前没有安装宝石,它会从gemcutter repo中抓取宝石。 bundle package
会将.gem文件缓存到您的应用程序供应商/缓存目录中。
先不需要运行gem install
。
我知道我们不应该问在stackoverflow上的后续行动(根据FAQ),但我有一个扩展的问题。我真正想做的是在一台机器上管理多个rails和ruby版本。那么,我会使用RVM的gemsets,然后使用bundler作为我创建的每个RVM gemset的一部分,以便切换gemsets并使用它们的rails版本? – MAP 2010-06-17 15:32:49
我还不确定它是如何工作的 - 它如何确保您运行的是正确版本的宝石,例如,当有多个宝石时? – Toybuilder 2012-05-16 00:58:51
@Toybuilder您可以在Gemfile中指定您的Gem依赖关系。 Bundler完全解析了您的整个Gem依赖关系图并将其冻结在应用程序的Gemfile.lock中。您可以使用'bundle viz'实际查看图形。 – 2012-05-17 16:34:00
这两个链接解释了关于捆绑器的一切。
退房http://gembundler.com/如果您还没有。这是官方的捆绑商网站。 – x1a4 2010-06-17 01:53:30