【发布时间】:2019-04-30 18:05:37
【问题描述】:
我在我的 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)”错误正如预期的那样。
如何才能运行以前的版本?
【问题讨论】:
-
gemfile 怎么样?您可以在那里指定特定版本。还是我错过了什么?
-
就像@MrRoth 在他们的回答中所说,我可以使用 Gemfile 和捆绑器,但据我所知,这将在我想使用 gem 的任何地方使用捆绑器。虽然这对 Rails 有意义,但对于我使用的 CococaPods 等命令行工具来说意义不大。我想真正的问题是这是否是一个特别是 rbenv 的错误。当通过 rbenv 安装 gem 时,它们在 ls ~/.rbenv/shims 中存根,并通过 /usr/local/Cellar/rbenv/1.1.2/libexec/rbenv 执行。是不是表示rbenv没有正确理解version指令?
-
rbenv 将解析为 ~/.rbenv/versions/2.3.7/bin/xcodeproj ,其中包含以下行: load Gem.bin_path('xcodeproj', 'xcodeproj', version) 版本确实正确传递,因此运行“xcodeproj 1.5.7 --version”会导致 Gem.bin_path() 返回“~/.gem/ruby/2.3.0/gems/xcodeproj-1.5.7 /bin/xcodeproj”。尚不清楚为什么这不起作用。
标签: ruby macos rubygems homebrew rbenv