Atom linter-erb失败了"错误:/ usr / bin / env:ruby:没有这样的文件或目录"

时间:2016-04-09 00:19:32

标签: ruby-on-rails ruby erb atom-editor

我将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
  • Ubuntu:15.10
  • kernel:4.2.0-34
  • Atom:1.6.0
  • linter-erb:1.0.2

我已多次重启Atom,但错误不断弹出。任何帮助将不胜感激。

修改 我发现如果我从终端启动Atom,我就不会遇到这个问题,但是当我从启动器中的图标启动它时,问题又会重新出现。

1 个答案:

答案 0 :(得分:0)

尝试将linter指向 RVM wrappers 而不是RVM中的直接二进制文件,只能在交互式shell中正常工作。 RVM包装器使二进制文件即使在其他环境和shell中也能正确运行。

只需在$HOME/.rvm/wrappers/下选择一个包装器目录,以获得所需的ruby和gemset版本,并使用那里的二进制文件。

有关详细说明,请参阅this answer