簡體   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