我正在尝试通过 Cygwin 安装 RVM,遵循 this tutorial .
创建目录并克隆 git 存储库后,我需要运行 ./osx_or_cygin_kick_off 以开始安装过程。
这是我收到的错误消息:
$ ./osx_or_cygwin_kick_off
./automation/rvm/rvm_install: line 2: $'\r': command not found
./automation/rvm/rvm_install: line 3: syntax error near unexpected token `$'\r''
'/automation/rvm/rvm_install: line 3: `install_rvm()
./automation/rvm/rvm_install_some_rubies: line 2: $'\r': command not found
./automation/rvm/rvm_install_some_rubies: line 3: syntax error near unexpected token `$'\r''
'/automation/rvm/rvm_install_some_rubies: line 3: `install_some_rubies()
我在某处读到,通过 doc2unix 将文件转换为 unix 格式可能会解决问题,但它只会产生更多错误消息。
有什么建议吗?
最佳答案
编辑:
问题是一些 Cygwin git 安装试图进行神奇的换行处理。要修复 git 以使其停止修改行结尾,请运行:
git config --global core.autocrlf false
原始答案在评论澄清后变得更加通用:
该文件包含 CRLF (\r\n
) 结束行序列,这在 Windows 上很常见。不过,Unix 不喜欢它; Unix(和 Cygwin)只需要 LF(\n
)。我猜你剪切并粘贴了那个文件,或者通过某种附加 Windows 行结尾的机制下载了它。
在 Cygwin 中修复文件:
tr -d '\r' <filename >filename.tmp
检查并确保 filename.tmp 看起来没问题,然后:
mv -f filename.tmp
或者,通过浏览器下载并保存(而不是剪切和粘贴),或者从 Cygwin shell 使用 curl
或 wget
下载。
在上述所有情况下,您可能没有可执行文件(只是可读)。您可以通过以下方式使其可执行:
chmod 755 filename
或者显式地通过 shell 运行它:
sh filename
如果您使用 Windows 编辑器来操作您的 Cygwin 文件,您将经常遇到这个问题。 Cygwin 内部的编辑器就可以了(例如 Vim)。可选择地,许多免费的 Windows 编辑器支持 Unix 行尾。 Notepad++是带有 Unix 行结束选项的好工具。
关于ruby-on-rails - 在 Windows 中通过 Cygwin 安装 RVM 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15535918/