ruby-on-rails - 在 Windows 中通过 Cygwin 安装 RVM 时出错

标签 ruby-on-rails windows cygwin rvm

我正在尝试通过 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 使用 curlwget 下载。

在上述所有情况下,您可能没有可执行文件(只是可读)。您可以通过以下方式使其可执行:

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/

相关文章:

ruby-on-rails - 如何在每个 db :reset 之后执行 "rake task"

windows - psql "more is not recognized"错误

c++ - 为什么在启用浮点异常后我得到多个陷阱错误

php - 是否可以通过 cygwin 运行 php exec?

ruby-on-rails - 如果找不到结果,则重定向到路径

html - 对不在 <form> 标签中的表单使用 ruby​​ mechanize?

c# - 安全地将密码从 C# 传输到 Java 应用程序

windows - CMake 错误 : File/cygdrive/. ../src/LLVMBuild.txt 不存在

windows - 在 Windows 上安装 Ansible

ruby-on-rails - 在 Rails 中清理 Markdown?