我正在尝试从此处安装YouCompleteMe 。
当我执行时:
./install.sh --clang-completer
我收到此错误:
env: bash\r: No such file or directory
我不知道环境变量有什么问题。这是我的bash路径:
which bash
/bin/bash
我需要将其更改为/usr/bash
吗?如果是,那我该怎么办?我尝试更改~/.bashrc
文件,但是没有用。
我正在尝试从此处安装YouCompleteMe 。
当我执行时:
./install.sh --clang-completer
我收到此错误:
env: bash\r: No such file or directory
我不知道环境变量有什么问题。这是我的bash路径:
which bash
/bin/bash
我需要将其更改为/usr/bash
吗?如果是,那我该怎么办?我尝试更改~/.bashrc
文件,但是没有用。
Answers:
该错误消息表明您正在调用的脚本具有嵌入的\r
字符,这反过来又表明它具有Windows样式的\r\n
行尾,而不是预期的\n
-only行尾bash
。
作为快速解决方案,您可以删除\r
字符。如下:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
注:该$'...'
字符串是ANSI-C引号字符串支持bash
,ksh
和zsh
。它用于确保\r
在sed
看到脚本之前将其扩展为实际的CR字符,因为并非所有sed
实现本身都支持将其\r
作为转义序列。
然后运行
./install.Unix.sh --clang-completer
但是,更大的问题是为什么您最终使用\r\n
-style文件-其他文件也很可能受到影响。
也许您正在Windows上运行Git,其中的典型配置是在检出文件时将Unix风格的\n
换行符转换为Windows风格的\r\n
换行符,并在提交时将其转换为仅换行符\n
。
尽管这对于在Windows上进行开发很有意义,但它会妨碍此类安装方案。
为了让Git的检查与Unix风格的文件结尾的文件在Windows上-至少暂时-使用:
git config --global core.autocrlf false
然后git clone
再次运行涉及您的安装命令。
要稍后恢复Git的行为,请运行git config --global core.autocrlf true
。
正如上面的评论所说,这是由于Windows行尾而发生的。要解决此问题,请按照以下步骤操作
对于MAC:
brew install dos2unix # Installs dos2unix Mac
find . -type f -exec dos2unix {} \; # recursively removes windows related stuff
对于Linux:
sudo apt-get install -y dos2unix # Installs dos2unix Linux
sudo find . -type f -exec dos2unix {} \; # recursively removes windows related stuff
并确保您的git配置设置如下:
git config --global core.autocrlf input
就我而言,我的git配置错误。git文档指出:
如果您在Windows上进行编程并且与非Windows的人一起工作(反之亦然),则有时可能会遇到行尾问题
我正在使用Mac OS,而我的一个项目中确实有这个问题。为了解决它,我转身autocrlf
到true
这是错误的。
您可以autocrlf
像这样检查git配置的状态:
git config core.autocrlf
因此,如果返回此错误,true
并且在git存储库中发生问题,则必须将该配置更改为
git config --global core.autocrlf input
在Mac / Unix系统上。对于仅Windows项目,您可以使用
git config --global core.autocrlf false
在我的情况下,我删除了git存储库并再次克隆了它,然后一切又按预期工作了。
在https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration上找到更多信息
就我而言,我的git配置错误。git文档指出:
如果您在Windows上进行编程并且与非Windows的人一起工作(反之亦然),则有时可能会遇到行尾问题
我正在使用Mac OS,而我的一个项目中确实有这个问题。为了解决这个问题我调autocrlf
来true
。
您可以autocrlf
像这样检查git配置的状态:
git config core.autocrlf
因此,如果返回此错误,true
并且在git存储库中发生问题,则必须将该配置更改为
git config --global core.autocrlf input
这对于Mac / Unix系统是正确的。对于仅Windows项目,您可以使用
git config --global core.autocrlf false
在我的情况下,我删除了git存储库,然后再次签出,然后一切都按预期进行了。
在https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration上找到更多信息
该链接帮助我解决了问题。 https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/127
我编辑了.sh文件,将所有CRLF替换为LF