如何运行特定版本的ruby gem



我在Gemfile外运行brakeman,所以我没有使用bundler

如果我选择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所特有的,你也可以为大多数其他宝石做这个。

我无法重现这个问题,但我可以想到几个可能发生这种情况的原因:

  • 捆绑器构件(可能在.bundle/中)指向旧版本。尝试在不同的目录下运行,看看是否仍然发生
  • RubyGems的bug (try gem update --system)
  • 在安装过程中,它询问您是否要替换brakeman二进制文件,您选择"no"
  • 如果你正在使用Ruby版本管理器,可能一个版本与另一个版本在不同的路径上(如系统gem与rvm管理的版本)
  • 有时发生的任意数量的GEM_PATH, bundler, gem, rvm怪异

在任何情况下,如果我是你,我会gem uninstall brakeman,删除所有版本,并安装新的。如果您正在使用rvm,则从一个新的gemset开始,或者从rvm gemset empty当前的gemset开始。

我有一个类似的问题:我卸载了一个特定的gem版本,但该版本仍然显示。

TL;DR: rbenv rehash做到了。(仅对rbenv用户有效,显然)

相关内容

  • 没有找到相关文章

最新更新