如何 运行 ruby gem 的特定版本
How to run a specific version of a ruby gem
我是 运行我的 Gemfile 之外的 brakeman,所以我没有使用捆绑器。
如果我这样做 gem list
,我可以看到我有下面的 brakeman
brakeman (3.3.3, 3.3.2, 3.1.4, 3.1.2)
但是如果我这样做 brakeman --version
,我会得到
brakeman 3.1.2
所以我没有使用最新版本。如果我做 gem update brakeman
或
gem update brakeman, '3.3.3,
我明白了
Updating installed gems
Nothing to update
那我怎么运行 brakeman 3.3.3版?
如果您安装了多个 gem 版本并且您想要从命令行调用特定版本,您可以使用:
brakeman _3.3.3_ [args go here]
这不是 brakeman 特有的,您也可以对大多数其他 gem 执行此操作。
我无法重现此问题,但我可以想到可能发生这种情况的几个原因:
- Bundler 工件(可能在
.bundle/
中)指向旧版本。在不同的目录中尝试运行,看看它是否仍然发生
- RubyGems 中的错误(尝试
gem update --system
)
- 在安装过程中,它询问您是否要替换
brakeman
二进制文件,您选择了 "no"
- 如果您使用的是 Ruby 版本管理器,可能一个版本与另一个版本在不同的路径上(例如系统 gem 与
rvm
管理的系统)
- 任意数量的
GEM_PATH
、bundler
、gem
、rvm
有时会发生的怪事
无论如何,如果我是你,我会 gem uninstall brakeman
,删除所有版本,然后重新安装。如果您使用的是 rvm
,请从新的 gem 设置或 rvm gemset empty
当前设置开始。
我遇到了类似的问题:我卸载了某个gem版本,但该版本仍然出现。
TL;DR:rbenv rehash
成功了。 (显然只对 rbenv
用户有效)
我是 运行我的 Gemfile 之外的 brakeman,所以我没有使用捆绑器。
如果我这样做 gem list
,我可以看到我有下面的 brakeman
brakeman (3.3.3, 3.3.2, 3.1.4, 3.1.2)
但是如果我这样做 brakeman --version
,我会得到
brakeman 3.1.2
所以我没有使用最新版本。如果我做 gem update brakeman
或
gem update brakeman, '3.3.3,
我明白了
Updating installed gems
Nothing to update
那我怎么运行 brakeman 3.3.3版?
如果您安装了多个 gem 版本并且您想要从命令行调用特定版本,您可以使用:
brakeman _3.3.3_ [args go here]
这不是 brakeman 特有的,您也可以对大多数其他 gem 执行此操作。
我无法重现此问题,但我可以想到可能发生这种情况的几个原因:
- Bundler 工件(可能在
.bundle/
中)指向旧版本。在不同的目录中尝试运行,看看它是否仍然发生 - RubyGems 中的错误(尝试
gem update --system
) - 在安装过程中,它询问您是否要替换
brakeman
二进制文件,您选择了 "no" - 如果您使用的是 Ruby 版本管理器,可能一个版本与另一个版本在不同的路径上(例如系统 gem 与
rvm
管理的系统) - 任意数量的
GEM_PATH
、bundler
、gem
、rvm
有时会发生的怪事
无论如何,如果我是你,我会 gem uninstall brakeman
,删除所有版本,然后重新安装。如果您使用的是 rvm
,请从新的 gem 设置或 rvm gemset empty
当前设置开始。
我遇到了类似的问题:我卸载了某个gem版本,但该版本仍然出现。
TL;DR:rbenv rehash
成功了。 (显然只对 rbenv
用户有效)