我正在无头虚拟机上工作并配置我的主机Rubymine通过VirtualBox的NAT接口使用远程SDK。
配置远程SDK后,我的运行/调试配置看起来很好。当我启动服务器时,它返回以下输出
/usr/bin/ruby -e '$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)' /home/user/project/bin/rails server -b 0.0.0.0 -p 3000 -e development
git://github.com/rails/sprockets-rails.git (at master@06852de) is not yet checked out. Run `bundle install` first.
Process finished with exit code 11
当我启动相同的命令时,ssh进入VM,服务器启动正常
SDK似乎有效;它调用/usr/bin/ruby
这是正确的路径(没有rvm)
安装的gem
lib应该没问题,因为一切都在ssh命令行中运行
Gemfile
中的相关行
gem 'sprockets-rails', github: 'rails/sprockets-rails'
ruby '2.3.1'
gem 'rails', '~> 4.2'
宝石安装在~/.gem/ruby/2.3.0/bin/
输出运行bundle install
的建议是没用的,因为我在cli中做了并且仍在工作。看起来Rubymine需要调整。有谁知道我能做些什么?
答案 0 :(得分:0)
找到了答案!
原因是非交互式shell会话,其中较少的点文件来源(请参阅man bash
并搜索non-interactive
)
当我尝试使用我的主机系统时,我知道它与Rubymine无关:
ssh user@127.0.0.1 "/usr/bin/ruby /home/user/project/bin/rails server -b 0.0.0.0 -p 3000 -e development"
提供与Rubymine相同的输出
还要检查ssh user@127.0.0.1 "env"
以查看shell环境的变量。
man sshd 8
说明了如何设置环境,使用~/.ssh/environment
(服务器上的文件,因为手册页是sshd)来存储key/value
对KEY=value
此文件在登录时读入环境(如果存在)。它可以 只包含空行,注释行(以'#'开头),和 形式名称=值的赋值行。该文件应该是可写的 只有用户;它不需要其他人可读。环境 默认情况下禁用处理,并通过 PermitUserEnvironment选项。
请注意PermitUserEnvironment
选项,进入服务器上的sshd.conf