rvm /usr/bin/env:ruby 没有这样的文件错误

rvm /usr/bin/env:ruby 没有这样的文件错误

我已经在系统范围内安装了 rvm + ruby​​。

which ruby
/usr/local/rvm/rubies/ruby-2.1.1/bin/ruby

和:

/usr/bin/env: ruby: No such file or directory

其他一切都运行良好,将 ruby​​ 的直接路径放入我的可执行文件中也可以正常工作。

答案1

PATH 是env程序用来搜索可执行文件的路径。您可以根据用户更改它(在 $HOME/.bashrc 中)。为此,请运行nano $HOME/.bashrc并转到最后一行,添加一个新行

export PATH=$PATH:/usr/local/rvm/rubies/ruby-2.1.1/bin

要在系统级别进行更改,sudo nano /etc/login.defs请更改此行

ENV_PATH        PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

ENV_PATH        PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/local/rvm/rubies/ruby-2.1.1/bin

答案2

我意识到这是一个有点老的问题,但是我花了一天多的时间试图解决这个问题,并且我发现了一种我认为可靠的最佳实践类型的解决方案——使用包装rvm器。

/usr/bin/env ruby使您能够使用您选择的 Ruby 版本,这样您就不必使用/bin硬编码目录路径编辑可执行 shell 脚本(在)来使其工作(我已在其他地方看到过这是建议的修复方法)。

正如上面的答案所述,关键在于$PATH中的设置/etc/environment,但我想出了不同的解决方案。

RVM 为我们提供了所有已安装的 ruby​​ 版本和别名的符号链接目录/usr/local/rvm/wrappers/

如果你将$PATHvar 设置为使用与要使用的 Ruby 版本关联的包装器目录,例如

PATH="/usr/local/rvm/wrappers/ruby-1.9.3-p547:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

您将设置 RVM 环境以便/usr/bin/env ruby_command可以工作。

至少这为我解决了这个问题。我希望这可以帮助人们节省一些时间。

答案3

我最近遇到了这个问题,并采取了不同的方法,所以想分享一下。当提到的目录中没有 ruby​​ 文件时,就会发生这种情况。因此,在目录中创建指向 ruby​​ 文件的符号链接,您的错误应该会得到修复。

cd /usr/bin/env

ln -s /usr/local/rvm/rubies/ruby-2.1.1/bin/ruby

答案4

我遇到了同样的错误

#!/usr/bin/env ruby 在我的脚本顶部导致

rvm /usr/bin/env: ruby no such file error

如果我执行该脚本。

我的解决方案很简单,但很难找到:

我的脚本/源代码编辑器中的换行符编码设置为“Windows 样式 (CR + LF)”。

将其切换为“unix 样式 (LF)”并再次保存脚本后,错误就消失了。

似乎回车符 (CR) 留在了“红宝石”后面,所以没有ruby filname.script导致ruby\R filename.script错误的。

相关内容