env:ruby\r \n:没有这样的文件或目录

Igo*_*kin 8 ruby rake ruby-on-rails

我有Rails项目.当我尝试运行任何rake任务或rails服务器时,它会给我这个错误

env:ruby\r \n:没有这样的文件或目录

有人能帮助我吗?

R.J*_*son 22

如果您正在使用Unix/Mac,则此错误是因为您的行结尾不正确.

这里有一些纠正的步骤.

  1. 正确设置行结尾,并让git管理它如何处理它们.

    $ git config --global core.autocrlf输入

然后,在您的目录中,您将基本上转换所有文件.

  1. 现在你必须运行以下内容

    $ find ./ -type f -exec dos2unix {} \;

这将遍历所有文件,并进行转换.这将解决错误.添加更改.承诺他们,你应该好好去.

  • 对于那些得到"find:'dos2unix'的人:没有这样的文件或目录"错误:sudo apt install dos2unix (10认同)
  • 请注意,find 命令可能过多...这一点是有争议的;这可能很好,但在某些情况下可能有点过分了。另一种可能的路线(对于本答案中的步骤2)是`git rm -r --cached .`,然后是`git reset --hard HEAD`...这可能更快(如果没有别的办法,它不会运行dos2unix在 `.git` 内务管理目录中的文件上!)...这也有潜在的陷阱(不过,如果您从“干净”的结帐运行,则可能很好),但我想我至少会提到它。 (3认同)

小智 4

您可能已经编辑了 ./bin/rake 文件并在第一行末尾添加了 \r :

#!/usr/bin/env ruby
begin
  load File.expand_path("../spring", __FILE__)
rescue LoadError
end
require_relative '../config/boot'
require 'rake'
Rake.application.run
Run Code Online (Sandbox Code Playgroud)

确保“ruby”之后只有换行符。

  • `\r` 在你的文字处理器中通常是不可见的 (2认同)