【问题标题】:Atom linter-erb failing with "Error: /usr/bin/env: ruby: No such file or directory"Atom linter-erb 失败并显示“错误:/usr/bin/env:ruby:没有这样的文件或目录”
【发布时间】:2016-07-30 09:47:28
【问题描述】:

我将 linter 设置为检查保存,每次保存 .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)

似乎即使我已经指定了它应该在哪里寻找 ruby​​,它仍然在 /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
  • 内核:4.2.0-34
  • 原子:1.6.0
  • linter-erb:1.0.2

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

编辑 我发现如果我从终端启动 Atom,我没有这个问题,但是当我从启动器中的图标启动它时,问题又出现了。

【问题讨论】:

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


    【解决方案1】:

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

    只需在 $HOME/.rvm/wrappers/ 下为您想要的 ruby​​ 和 gemset 版本选择一个包装器目录,然后从那里使用二进制文件。

    更多解释请见this answer

    【讨论】:

    • 感谢您的回复。我花了大约 30 分钟根据您的回复和您发布的链接尝试各种选项,但似乎没有任何效果。我想知道在某个地方的 linter 中是否有一个但是。以相同的方式在 linter-ruby 中设置 ruby​​ 的可执行路径可以正常工作。我在 GitHub here 上提交了一个问题。希望维护者能找到解决方法,或者告诉我我很笨,没有办法纠正它。
    猜你喜欢
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 2013-12-15
    • 2023-04-04
    • 2016-03-28
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多