Я пытаюсь отладить проект Rails в RubyMine v2018.2 (2018.2.1, 2018.2.4).Когда я запускаю редактор, я получаю предупреждение:
RubyMine Gem Manager: RubyMine обнаружил, что некоторые из гемов, необходимых для ' project ', не установлены.
Когда я пытаюсь запустить команду установки RubyMine Bundler, мне говорят
bash -c "RBENV_VERSION=2.5.0 /usr/bin/rbenv exec bundle install -V"
Activating bundler (< 2) failed:
Could not find 'bundler' (< 2) among 28 total gem(s)
Checked in 'GEM_PATH=/home/brad/.gem/ruby/2.5.0:/var/lib/gems/2.5.0:/usr/lib/x86_64-linux-gnu/rubygems-integration/2.5.0:/usr/share/rubygems-integration/2.5.0:/usr/share/rubygems-integration/all', execute `gem env` for more information
To install the version of bundler this project requires, run `gem install bundler -v '< 2'`
... и когда я пытаюсь запустить или отлаживать свое приложение из IDE, мне говорят "Не удалосьнайти упаковщик ( версия ), необходимый для вашего путь-проекта / Gemfile.lock. "
Почему RubyMine не обнаруживает мои установленные Gems?
Моя среда
- Ubuntu 18.04.01
- zsh 5.4.2
- rbenv 1.0.0
- rbenv-binstubs @ 8ecb7ca8
- Rubymine 2018.2.4
Я использую rbenv для управления версиями Ruby.В системе установлен Ruby 2.5.1, но мой проект зависит от 2.5.0.Я установил 2.5.0 в качестве глобальной версии rbenv.Конфигурация для как rbenv выбирает версию Ruby , кажется, все в порядке;Я получаю следующие результаты от неинтерактивных команд:
> echo $RBENV_VERSION
(no response)
> cat ~/.rbenv/version
2.5.0
> rbenv global
2.5.0
После того, как я заметил, что rbenv не работает должным образом в некоторых командах RubyMine, я переместил шаг установки eval "$(rbenv init -)"
с ~/.zshrc
до ~/.zshenv
и~/.profile
, поэтому он также будет применяться к оболочкам входа в bash и zsh (согласно указаниям здесь ).Сейчас я получаю совпадающие результаты для интерактивных оболочек и оболочек входа в систему, но все еще получаю неожиданное поведение от команды Bundle install в RubyMine.
Что работает
Мое приложение отлично устанавливается, собирается и работаетиз интерактивной оболочки.
Параметры RubyMine RubyMine правильно определяют rvm и его установленные версии, а также все установленные гемы для этой версии.
![RubyMine Ruby SDK Settings](https://i.stack.imgur.com/d1Z23.png)
Что я пробовал
Вывод команды bundle install утверждает, что он выполняется
bash -c "RBENV_VERSION=2.5.0 /usr/bin/rbenv exec bundle install"
Когда я запускаю это из моей интерактивной оболочки или с помощью функции RubyMine «Запустить что-нибудь»(оболочка входа в систему) эта команда работает нормально - как и любое из следующего:
RBENV_VERSION=2.5.0 /usr/bin/rbenv exec bundle install
/usr/bin/rbenv exec bundle install
rbenv exec bundle install
bundle install
Так что я не могу понять, какой контекст RubyMine использует для запуска этой команды.Из сообщения об ошибке видно, что GEM_PATH
неверно, в результате чего RubyMine ищет неправильное место для компоновщика, но я не знаю, откуда он получает эту конфигурацию.Если я открою представление «Среда RubyGems» в RubyMine, я получу:
RUBYGEMS VERSION: 2.7.3
RUBY VERSION: 2.5.0 (2017-12-25 patchlevel 0) [x86_64-linux]
INSTALLATION DIRECTORY: /home/brad/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0
USER INSTALLATION DIRECTORY: /home/brad/.gem/ruby/2.5.0
RUBY EXECUTABLE: /home/brad/.rbenv/versions/2.5.0/bin/ruby
EXECUTABLE DIRECTORY: /home/brad/.rbenv/versions/2.5.0/bin
SPEC CACHE DIRECTORY: /home/brad/.gem/specs
SYSTEM CONFIGURATION DIRECTORY: /home/brad/.rbenv/versions/2.5.0/etc
RUBYGEMS PLATFORMS:
ruby
x86_64-linux
GEM PATHS:
/home/brad/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0
/home/brad/.gem/ruby/2.5.0
(...)
SHELL PATH:
/home/brad/.rbenv/versions/2.5.0/bin
/usr/lib/rbenv/libexec
/home/brad/.rbenv/plugins/ruby-build/bin
/home/brad/.rbenv/plugins/rbenv-gemset/bin
/home/brad/.rbenv/plugins/rbenv-binstubs/bin
(...rest of PATH...)
----------------------
IDE: RubyMine 2018.2.4, build #RM-182.4505.55
OS: Linux 4.15.0-38-generic[amd64]
Java: 1.8.0_152-release-1248-b8
RubyMine SDK Environment:
Sdk: rbenv: 2.5.0
Sdk Version: ver.2.5.0p0 ( revision 61468) p0
Ruby Interpreter: /home/brad/.rbenv/versions/2.5.0/bin/ruby
RVM Sdk: Rbenv sdk, gemset nullSdk Language Level: 2.5
Sdk Load Path:
~/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/did_you_mean-1.2.0/lib
~/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0
~/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/x86_64-linux
~/.rbenv/versions/2.5.0/lib/ruby/site_ruby
~/.rbenv/versions/2.5.0/lib/ruby/vendor_ruby/2.5.0
~/.rbenv/versions/2.5.0/lib/ruby/vendor_ruby/2.5.0/x86_64-linux
~/.rbenv/versions/2.5.0/lib/ruby/vendor_ruby
~/.rbenv/versions/2.5.0/lib/ruby/2.5.0
~/.rbenv/versions/2.5.0/lib/ruby/2.5.0/x86_64-linux
~/.local/share/JetBrains/Toolbox/apps/RubyMine/ch-0/182.4505.55/rubystubs25
Sdk Gem paths:
~/.gem/ruby/2.5.0/gems
~/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/bundler/gems
~/.bundle/ruby/2.5.0/gems
~/.bundle/ruby/2.5.0/bundler/gems
~/.gem/ruby/2.5.0/bundler/gems
~/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems
(full list of gems used for project)
Так что я думаю, что последний бит - «Пути Sdk Gem» - может быть проблемной точкой, но я не вижу никакихспособ его настройки.
Я также уже знаю о проблеме YouTrack "В выпуске Rubymine 2018.2 не используется переменная окружения $ GEM_HOME" и не думаю, что это именно то, что здесь происходит.Он также утверждает, что исправлен в EAP1 2018.3, поэтому я установил EAP7 2018.3, но все еще вижу эту проблему.