Как запустить конкретную версию рубинового камня
Я запускаю тормозную систему за пределами моего Gemfile, поэтому не использую 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?
4 ответа
Я не могу воспроизвести эту проблему, но я могу придумать несколько причин, по которым это может произойти:
- Bundler артефакты (возможно, в
.bundle/
) указывая на старую версию. Попробуйте запустить в другом каталоге и посмотреть, если это все еще происходит - Ошибка в RubyGems (попробуйте
gem update --system
) - Во время установки он спросил, хотите ли вы заменить
brakeman
бинарный и вы выбрали "нет" - Если вы используете менеджер версий Ruby, возможно, одна версия находится на пути, отличном от другого (например, системный гем или тот, которым управляет
rvm
) - Любое количество
GEM_PATH
,bundler
,gem
,rvm
странность, которая иногда возникает
В любом случае, на вашем месте я бы gem uninstall brakeman
, удалите все версии и установите свежие. Если вы используете rvm
, начните со свежего драгоценного камня или rvm gemset empty
текущий.
Если у вас установлено несколько версий gem и вы хотите вызвать определенную версию из командной строки, вы можете использовать:
brakeman _3.3.3_ [args go here]
Это не относится к тормозам, вы можете сделать это для большинства других драгоценных камней.
У меня была похожая проблема: я удалил определенную версию гема, но версия все равно появилась.
TL; DR: rbenv rehash
сделал трюк. (Действителен только для rbenv
пользователи, очевидно)
$ gem install brakeman -v 3.3.3
затем в вашем Gemfile (если он у вас есть) укажите эту конкретную версию, например:
"brakeman", "~> 3.3.3"