2016-08-12 105 views
7

我在我的Gemfile之外运行了brakeman,所以我没有使用bundler。如何运行红宝石宝石的特定版本

如果我做gem list,我可以看到我对司闸员

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 

那么,如何运行司闸员3.3.3版?

回答

3

我不能重现这个问题,但我能想到的几个原因,这可能会发生:

  • 捆扎机工件(也许在.bundle/)指向旧版本。尝试在不同的目录中运行,看看它是否仍然发生
  • 一个错误的RubyGems(试行gem update --system
  • 在安装过程中,它问,如果你想更换brakeman二进制并选择了“无”
  • 如果您使用一个Ruby版本管理器,也许有版本比另一个不同的路径(像系统宝石与一个由rvm管理)
  • 任何数量的GEM_PATHbundlergemrvm古怪,有时发生

无论如何,如果我是你,我会gem uninstall brakeman,删除所有版本,并安装新鲜。如果您使用的是rvm,请从当前的新宝石或rvm gemset empty开始。

+0

这是核选择,但它应该工作。我正在使用rvm。我会尝试。 – Obromios

+0

工作感谢你。 – Obromios

-2
$ gem install brakeman -v 3.3.3 

然后在您的Gemfile(假设你有一个)指向特定的版本,如:

"brakeman", "~> 3.3.3" 
9

如果你安装了几个宝石版本,并希望从该命令调用特定版本你可以使用:

brakeman _3.3.3_ [args go here] 

这不是特定于brakeman,你可以为大多数其他宝石做到这一点。

+0

如果我做'''brakeman _3.3.3_ --version'''它仍然返回3.1.2,那么我真的在运行3.3.3吗? – Obromios

+0

嗯,这很奇怪。你是哪个制动员的输出? – awendt

+1

我在另一个系统上试过这个,它确实有效。我的刹车装置一定有些奇怪。我已经提出了你的答案。 – Obromios