无法在rbenv环境中切换gem版本

时间:2019-04-30 18:05:37

标签: ruby macos rubygems homebrew rbenv

我在MacOS 10.14.4上通过Homebrew安装了rbenv 1.1.2。

我无法以与最新版本不同的版本运行gem。

例如,我安装了三个版本的xcodeproj gem(1.8.2、1.8.1、1.8.0、1.5.7)。

如果我运行xcodeproj --version,则会看到1.8.2,如预期的那样。

但是,如果我运行xcodeproj _1.5.7_ --version,则我还会看到1.8.2,而期望值为1.5.7。

请注意,通过版本会执行某些操作-如果我通过了无效版本(例如 1.5.0 ),则会收到“找不到gem xcodeproj(= 1.5.0)”错误如预期的那样。

我该怎么做才能运行以前的版本?

1 个答案:

答案 0 :(得分:0)

您应该使用bundler来管理Gemfile中指定的rubygems依赖项。例如:

$ cat Gemfile
# frozen_string_literal: true

source "https://rubygems.org"

gem "xcodeproj", "1.5.7"

使用捆绑软件安装它们

$ bundle install --path gems
Fetching gem metadata from https://rubygems.org/...............
Resolving dependencies...
Fetching CFPropertyList 3.0.0
Installing CFPropertyList 3.0.0
Fetching atomos 0.1.3
Installing atomos 0.1.3
Using bundler 1.17.2
Fetching claide 1.0.2
Installing claide 1.0.2
Fetching colored2 3.1.2
Installing colored2 3.1.2
Fetching nanaimo 0.2.6
Installing nanaimo 0.2.6
Fetching xcodeproj 1.5.7
Installing xcodeproj 1.5.7
Bundle complete! 1 Gemfile dependency, 7 gems now installed.
Bundled gems are installed into `./gems`

然后使用捆绑程序执行rubygem

$ bundle exec xcodeproj --version
1.5.7

请注意,当您使用rbenv并想在没有捆绑程序管理的情况下执行rubygem时,则必须确保对于每个rbenv版本,都安装了自己喜欢的gems。例如,如果您使用2个不同的红宝石版本,并且您喜欢pry ruby​​gem,则必须为每个红宝石版本安装pry。