我将linter设置为check on check,每次保存.erb文件时都会抛出此错误。在包的设置中,我指定了以下两种设置:
Erb可执行路径
/home/jason/.rvm/rubies/ruby-2.3.0/bin/erb
Ruby可执行路径
/home/jason/.rvm/rubies/ruby-2.3.0/bin/ruby
我遇到了与linter-ruby软件包类似的问题,但设置ruby可执行文件路径似乎解决了这个问题。这是我的路径:
$ echo $PATH
/home/jason/.nvm/versions/node/v5.10.0/bin:/home/jason/.rvm/gems/ruby-2.3.0/bin:/home/jason/.rvm/gems/ruby-2.3.0@global/bin:/home/jason/.rvm/rubies/ruby-2.3.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jason/.rvm/bin:/home/jason/.rvm/bin
这里是错误的完整输出。
Error: /usr/bin/env: ruby: No such file or directory
at parameters.exit (/home/jason/.atom/packages/linter-erb/node_modules/atom-linter/lib/helpers.js:47:27)
at triggerExitCallback (/opt/atom/resources/app.asar/src/buffered-process.js:213:47)
at /opt/atom/resources/app.asar/src/buffered-process.js:220:18
at Socket.<anonymous> (/opt/atom/resources/app.asar/src/buffered-process.js:98:18)
at emitOne (events.js:82:20)
at Socket.emit (events.js:169:7)
at Pipe._onclose (net.js:469:12)
即使我已经指明它应该在哪里寻找红宝石,它仍然在寻找/ usr / bin / env。
这里有更多的输出,希望有用:
$ which erb
/home/jason/.rvm/rubies/ruby-2.3.0/bin/erb
$ which ruby
/home/jason/.rvm/rubies/ruby-2.3.0/bin/ruby
我不确定这会产生什么影响,但是为了试图覆盖我的所有基础,我也在〜/ .bashrc中有这个
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
我已多次重启Atom,但错误不断弹出。任何帮助将不胜感激。
修改 我发现如果我从终端启动Atom,我就不会遇到这个问题,但是当我从启动器中的图标启动它时,问题又会重新出现。
答案 0 :(得分:0)
尝试将linter指向 RVM wrappers 而不是RVM中的直接二进制文件,只能在交互式shell中正常工作。 RVM包装器使二进制文件即使在其他环境和shell中也能正确运行。
只需在$HOME/.rvm/wrappers/
下选择一个包装器目录,以获得所需的ruby和gemset版本,并使用那里的二进制文件。
有关详细说明,请参阅this answer。