1

我正在尝试按照本教程通过 Cygwin 安装 RVM 。

创建目录并克隆 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 格式可能会解决问题,但它只会创建更多错误消息。

有什么建议么?

4

1 回答 1

2

编辑:

问题是一些 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 行结束选项的好工具。

于 2013-03-20T22:58:51.677 回答