要理解这一点,您需要退后一步并了解红宝石宝石的一般工作原理。
让我们从一个没有 rvm 或 Gemfile 的系统开始。
当您通过“gem install”安装 gem 时,它会进入系统 gem 位置。
每当您编写 ruby 脚本并需要 gem 时,都会从那里获取它。
现在假设您需要为不同的项目使用不同版本的 gem。这就是捆绑器的用武之地。您创建一个 Gemfile,当您“捆绑安装”时,Gemfile 中列出的 gem 将被引入并在该项目的上下文中使用。您需要执行“bundle install”将它们引入,然后“bundle exec ruby”才能与 gem 版本一起运行。您可以拥有多个 gem 版本并选择要使用的版本。如果您不通过捆绑程序,您将使用系统中的任何内容。
现在RVM。假设您想以有组织的方式更改“系统”gem 和 ruby 版本。这基本上就是 RVM gemset 的本质。通过路径间接的魔力,您可以为不同的 gem 集安装 gem,并假装它们是系统 gem。
所以 gemsets 和 gemfiles 是相互正交的。如果您使用 gem 文件,gems 将安装在 gem 集中,但如果您使用捆绑程序,您通常不会关心这一点。
通常您会想要使用 Gemfile。
| 归档时间: |
|
| 查看次数: |
691 次 |
| 最近记录: |