我有Rails项目。当我尝试运行任何rake任务或rails服务器时,它给我这个错误env:拼音\r:无此文件或目录有人能帮帮我吗?
wwtsj6pe1#
如果您在Unix / Mac上工作,则此错误是因为您的行尾不正确。下面是一个使用dos2unix的解决方案;你可能需要在你的系统上安装这个程序。2如果apt可用,你可以使用sudo apt install dos2unix。
dos2unix
apt
sudo apt install dos2unix
git config --global core.autocrlf input
find ./ -type f -exec dos2unix {} \;
这将循环通过你所有的文件,转换它们。并解决问题。添加你的更改。提交它们,你应该很好地去。
3yhwsihp2#
您可能已经编辑了./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
确保在“ruby”之后只有换行符。
laximzn53#
多亏了上面的评论,我解决了我的服务器问题,这个问题是由于克隆我的小组的github rails应用程序并导致localhost:3000失败而引起的。ruby(-v 2.7.1)/rails(-v6.0.3.4)。下面两个人的评论解决了我的错误:“对于那些你谁得到了“发现:“dos2unix”:无此文件或目录”错误:sudo倾向于安装dos 2unix”- RealMan 2017年7月26日14:59“请注意,find命令可能过多......这一点是有争议的;它很可能是好的,但在某些情况下可能是矫枉过正的。另一种可能的路线(对于此答案中的步骤2)是git rm -r --cached。然后是git reset --hard HEAD...后者可能更快(如果没有别的,它不会在.git管理目录中的文件上运行dos 2unix!)......这也有潜在的缺陷(如果你是从一个“干净”的结账台跑过来的话,可能还不错),但我想我至少应该提一下。”- lindes Jul 13 '19 at 0:42
git rm -r --cached
git reset --hard HEAD
.git
pb3skfrl4#
我不断得到这个错误,终于想出了如何修复它.1.我确保bin文件夹中文件的所有权限都是可执行的。在当前存储库中运行ls -lha。您希望每个文件的末尾都有一个x,如下所示-rwxr-xr-x.要实现这一点,您需要为bin文件夹中的每个文件运行chmod +x <file_name_here>,例如chmod +x rails、chmod +x bundle等。现在,当您运行ls -lha时,您应该看到它们的末尾都有一个x。1.接下来,无论是在SublimeText、Atom还是其他任何文本编辑器中,你都需要检查你没有使用Windows的行结束符,\r字符是Windows使用的,Unix只是使用\n作为新行。我使用Atom,所以我去了插件部分(Mac上的Cmd + ,),然后在Packages部分搜索line-ending-selector,然后去了行尾选择器设置。你会发现在文件的底部,Atom会告诉你文件结尾的行的类型,Windows的是CRLF,Unix/Mac的是LF,你希望你所有的文件都使用'LF'。因此,在您的终端中,通过运行atom ./bin/filename(例如atom ./bin/rake)打开Atom中bin文件夹中的每个文件。在底部你会看到'CRLF'或'LF'。如果你看到'CRLF',点击它,在Atom的顶部,你可以选择'LF'。要保存的Cmd + s。对每一个都这样做。你基本上是在告诉你的文件去掉所有的Windows行尾,改用Unix行尾。编辑完所有文件后,应该可以运行rake或rails命令。注意:Sublime Text和Text Mate应该有Atom行尾选择器的等价物。
ls -lha
x
-rwxr-xr-x
chmod +x <file_name_here>
chmod +x rails
chmod +x bundle
\r
\n
Cmd + ,
line-ending-selector
CRLF
LF
atom ./bin/filename
Cmd + s
3duebb1j5#
适用于macOS用户步骤1:HOMEBREW_NO_AUTO_UPDATE=1 brew install dos2unix步骤2:git config --global core.autocrlf input步骤3:find ./ -type f -exec dos2unix {} \;(在您试图运行任务的存储库中)git add和git commit你可以走了!
HOMEBREW_NO_AUTO_UPDATE=1 brew install dos2unix
git add
git commit
xpszyzbs6#
如果这些方法都不起作用,请尝试以下方法:
git config --global core.autocrlf true rails app:update:bin
30byixjq7#
我在Windows终端上遇到了同样的问题,使用的是WSL 2!我关注了一篇建议安装dos2unix dependencie的帖子:sudo apt install dos2unix(使用apt包管理器)并运行其他两个命令:
git会识别出一些修改,但你不需要提交它。我刚刚做了一个git restore .,删除节点依赖项rm -rf node_modules,然后重新下载yarn install。
git restore .
rm -rf node_modules
yarn install
7条答案
按热度按时间wwtsj6pe1#
如果您在Unix / Mac上工作,则此错误是因为您的行尾不正确。
下面是一个使用
dos2unix
的解决方案;你可能需要在你的系统上安装这个程序。2如果apt
可用,你可以使用sudo apt install dos2unix
。这将循环通过你所有的文件,转换它们。并解决问题。添加你的更改。提交它们,你应该很好地去。
3yhwsihp2#
您可能已经编辑了./bin/rake文件并在第一行末尾添加了\r:
确保在“ruby”之后只有换行符。
laximzn53#
多亏了上面的评论,我解决了我的服务器问题,这个问题是由于克隆我的小组的github rails应用程序并导致localhost:3000失败而引起的。ruby(-v 2.7.1)/rails(-v6.0.3.4)。下面两个人的评论解决了我的错误:
“对于那些你谁得到了“发现:“dos2unix”:无此文件或目录”错误:sudo倾向于安装dos 2unix”- RealMan 2017年7月26日14:59
“请注意,find命令可能过多......这一点是有争议的;它很可能是好的,但在某些情况下可能是矫枉过正的。另一种可能的路线(对于此答案中的步骤2)是
git rm -r --cached
。然后是git reset --hard HEAD
...后者可能更快(如果没有别的,它不会在.git
管理目录中的文件上运行dos 2unix!)......这也有潜在的缺陷(如果你是从一个“干净”的结账台跑过来的话,可能还不错),但我想我至少应该提一下。”- lindes Jul 13 '19 at 0:42pb3skfrl4#
我不断得到这个错误,终于想出了如何修复它.
1.我确保bin文件夹中文件的所有权限都是可执行的。
在当前存储库中运行
ls -lha
。您希望每个文件的末尾都有一个x
,如下所示-rwxr-xr-x
.要实现这一点,您需要为bin文件夹中的每个文件运行
chmod +x <file_name_here>
,例如chmod +x rails
、chmod +x bundle
等。现在,当您运行
ls -lha
时,您应该看到它们的末尾都有一个x。1.接下来,无论是在SublimeText、Atom还是其他任何文本编辑器中,你都需要检查你没有使用Windows的行结束符,
\r
字符是Windows使用的,Unix只是使用\n
作为新行。我使用Atom,所以我去了插件部分(Mac上的
Cmd + ,
),然后在Packages部分搜索line-ending-selector
,然后去了行尾选择器设置。你会发现在文件的底部,Atom会告诉你文件结尾的行的类型,Windows的是
CRLF
,Unix/Mac的是LF
,你希望你所有的文件都使用'LF'。因此,在您的终端中,通过运行
atom ./bin/filename
(例如atom ./bin/rake)打开Atom中bin文件夹中的每个文件。在底部你会看到'CRLF'或'LF'。如果你看到'CRLF',点击它,在Atom的顶部,你可以选择'LF'。
要保存的
Cmd + s
。对每一个都这样做。你基本上是在告诉你的文件去掉所有的Windows行尾,改用Unix行尾。
编辑完所有文件后,应该可以运行rake或rails命令。
注意:Sublime Text和Text Mate应该有Atom行尾选择器的等价物。
3duebb1j5#
适用于macOS用户
步骤1:
HOMEBREW_NO_AUTO_UPDATE=1 brew install dos2unix
步骤2:
git config --global core.autocrlf input
步骤3:
find ./ -type f -exec dos2unix {} \;
(在您试图运行任务的存储库中)git add
和git commit
你可以走了!
xpszyzbs6#
如果这些方法都不起作用,请尝试以下方法:
30byixjq7#
我在Windows终端上遇到了同样的问题,使用的是WSL 2!我关注了一篇建议安装
dos2unix
dependencie的帖子:sudo apt install dos2unix
(使用apt
包管理器)并运行其他两个命令:git config --global core.autocrlf input
(正确设置行尾,并让git管理如何处理它们)find ./ -type f -exec dos2unix {} \;
(在您的目录中,您将转换所有的文件)git会识别出一些修改,但你不需要提交它。我刚刚做了一个
git restore .
,删除节点依赖项rm -rf node_modules
,然后重新下载yarn install
。