我正在尝试调试RubyMine v2018.2 (2018.2.1,2018.2.4)中的Rails项目。当我启动编辑器时,我会收到一个警告:
RubyMine Gem : RubyMine检测到“项目”所需的一些宝石没有安装。
当我尝试运行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'`...and当我试图从IDE运行或调试我的应用程序时,我被告知“找不到您的项目-path/gemfile.lock所需的bundler (版本)”。
为什么RubyMine不检测我安装的Gems?
我的环境
我使用rbenv来管理我的Ruby版本。系统安装了Ruby2.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登录shell(按照指导这里)。我现在正在获得交互和登录shell的匹配结果,但仍然可以从RubyMine中的Bundle安装命令中得到意想不到的行为。
什么在起作用
我的应用程序在交互式shell上安装、构建和运行都很好。
RubyMine的RubyMine的SDK设置正确地检测到rvm及其已安装的版本,以及该版本的所有已安装宝石。

我试过的
bundle install命令的输出声称它正在运行
bash -c "RBENV_VERSION=2.5.0 /usr/bin/rbenv exec bundle install"当我从我的交互式shell或RubyMine的“运行任何东西”特性(登录shell)运行这个命令时,这个命令工作得很好--如下所示:
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找错了邦德勒,但我不知道它是从哪里得到这个配置的。如果我在RubyMine中打开“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路径“--可能是问题所在,但我看不出有任何方法来配置它。
我也已经知道了YouTrack的问题,家庭环境变量“,不认为这是怎么回事。它还声称是在2018.3 EAP1中修复的,所以我安装了2018.3 EAP7,但仍然看到了这个问题。
发布于 2018-10-25 16:45:12
我把东西弄好了!通过签到和回来。*面部表情:
具体来说,我认为关键的步骤是
$(rbenv init -)步骤从.zshrc移动到我的.zshenv和/或.profile关键的洞察力在于注意到,尽管在交互和登录shell中(在~/.rbenv/shims内外)都显示了RubyMine Gem环境中的内容,但它仍然没有出现,并意识到虽然新的shell正在收集我的.profile更改,但RubyMine本身可能继承了会话中的环境变量,我需要登录/登录才能获取更改。
现在我在我的~/.rbenv/shims Gem环境中看到了RubyMine,而Bundler安装命令和我的运行配置都再次工作。
谢谢卡斯珀为我指明了正确的方向!
发布于 2018-10-25 15:47:51
去过你以前很多次的地方。
在可以运行的脚本列表中,单击“编辑配置”。应该在主工具栏中。

在bundler选项卡上反复检查“在bundle (bundle Exec)上下文中运行脚本”。这是非常重要的,默认情况下不进行检查。确保您检查任何rake,rails或irb配置。

请记住,运行配置是您可以重写项目设置的地方。如果设置不当,就会产生各种各样的问题。

希望这能有所帮助!咬了我好多次。
https://stackoverflow.com/questions/52978870
复制相似问题