Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何运行特定版本的ruby gem_Ruby On Rails_Rubygems_Brakeman - Fatal编程技术网

Ruby on rails 如何运行特定版本的ruby gem

Ruby on rails 如何运行特定版本的ruby gem,ruby-on-rails,rubygems,brakeman,Ruby On Rails,Rubygems,Brakeman,我在Gemfile之外运行brakeman,所以我不使用bundler 如果我做了gem列表,我可以看到我有以下关于brakeman的信息 brakeman (3.3.3, 3.3.2, 3.1.4, 3.1.2) 但是,如果我做了brakeman--version,我会 brakeman 3.1.2 所以我没有使用最新版本。如果我做了gem更新制动器或 gem update brakeman, '3.3.3, 我明白了 那么如何运行brakeman版本3.3.3?如果安装了多个gem版本

我在Gemfile之外运行brakeman,所以我不使用bundler

如果我做了
gem列表
,我可以看到我有以下关于brakeman的信息

brakeman (3.3.3, 3.3.2, 3.1.4, 3.1.2)
但是,如果我做了
brakeman--version
,我会

brakeman 3.1.2
所以我没有使用最新版本。如果我做了
gem更新制动器

gem update brakeman, '3.3.3,
我明白了


那么如何运行brakeman版本3.3.3?

如果安装了多个gem版本,并且希望从命令行调用特定版本,则可以使用:

brakeman _3.3.3_ [args go here]

这不是针对brakeman的,您也可以针对大多数其他宝石执行此操作。

我无法复制此问题,但我可以想到一些可能发生这种情况的原因:

  • 绑定器工件(可能在
    .bundle/
    中)指向旧版本。尝试在不同的目录中运行,看看它是否仍然发生
  • RubyGems中的一个bug(尝试
    gem更新--system
  • 在安装过程中,它询问您是否要更换
    brakeman
    二进制文件,您选择了“否”
  • 如果您使用的是Ruby版本管理器,可能一个版本的路径与另一个不同(比如系统gem与由
    rvm
    管理的版本)
  • 任意数量的
    GEM\u路径
    bundler
    GEM
    rvm
    有时会出现的怪异

无论如何,如果我是你,我会
gem卸载brakeman
,删除所有版本,然后安装fresh。如果您使用的是
rvm
,请从新的gemset开始,或者从当前的
rvm gemset empty
开始。

我遇到了类似的问题:我卸载了某个gem版本,但该版本仍然显示出来


TL;DR:
rbenv-rehash
成功了。(显然,仅对
rbenv
用户有效)

如果我使用
brakeman\u 3.3.3\u--version
它仍然返回3.1.2,那么我真的在运行3.3.3吗?我已经在另一个系统上尝试过了,它确实有效。我的刹车装置一定有点奇怪。我对你的答案投了赞成票。为了澄清,你可以对所有其他宝石这样做。尝试
gem which brakeman
查看从命令行执行的文件实际上只是RubyGems生成的一个垫片(脚本);该垫片接受
\u 3.3.3
参数,并使用它来确定调用哪个版本的brakeman。这是核选项,但应该可以工作。我正在使用rvm。我试试看。
brakeman _3.3.3_ [args go here]