我正在尝试在this tutorial之后通过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格式可能会解决问题,但它只会产生更多的错误信息。
有什么建议吗?
答案 0 :(得分: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
或者,使用curl
或wget
进行浏览器下载并保存(而不是剪切和粘贴),或从Cygwin shell下载。
在上述所有情况中,您可能没有可执行文件(只是可读)。您可以使用以下命令使其可执行:
chmod 755 filename
或者明确地通过shell运行它:
sh filename
如果使用Windows编辑器操作Cygwin文件,则会经常遇到此问题。 Cygwin里面的编辑很好(例如Vim)。可选地,许多免费的Windows编辑器支持Unix行结尾。 Notepad++是一个很好的Unix行结束选项。