繁体   English   中英

如何运行特定版本的ruby gem

[英]How to run a specific version of a ruby gem

我在我的Gemfile之外运行刹车手,所以我没有使用捆绑器。

如果我做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

那么如何运行brakeman版本3.3.3?

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

brakeman _3.3.3_ [args go here]

这不是制动员特有的,你也可以为大多数其他宝石做这件事。

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

  • Bundler工件(可能在.bundle/ )指向旧版本。 尝试在不同的目录中运行,看看它是否仍然存在
  • RubyGems中的一个错误(尝试gem update --system
  • 在安装过程中,它询问您是否要更换brakeman二进制文件并选择“否”
  • 如果您使用的是Ruby版本管理器,则可能有一个版本与另一个版本位于不同的路径上(如系统宝石与rvm管理的rvm
  • 有时会出现任意数量的GEM_PATHbundlergemrvm怪异

在任何情况下,如果我是你我gem uninstall brakeman ,删除所有版本,并安装新鲜。 如果您使用的是rvm ,请从新的gemset或rvm gemset empty当前的。

我遇到了类似的问题:我卸载了某个宝石版本,但版本仍然出现了。

TL; DR: rbenv rehash完成了这个伎俩。 (显然只对rbenv用户有效)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM