运行FreeTDS配置文件时出现语法错误

时间:2012-07-25 19:23:39

标签: cygwin freetds

我试图运行Ruby on Rails并连接到MS SQL DB。我已经安装了RoR,并且我已经创建了我将要连接的数据库。我创建了测试模型,当尝试$ rake db:migrate时,我得到了一个rake aborted错误(没有这样的文件要加载 - tiny_tds)。 此时我下载并解压缩了FreeTDS。当我提交$ ./configure时会出现问题。

以下是命令和生成的错误消息(Windows 7 Pro OS盒上的Cygwin终端):

$ ./configure

./configure: line 31: syntax error near unexpected token `newline'

'/configure: line 31: `;;

这是来自FreeTDS配置文件的代码(第19-33行):

    if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
  emulate sh

  NULLCMD=:

  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which

  # is contrary to our usage.  Disable this feature.

  alias -g '${1+"$@"}'='"$@"'

  setopt NO_GLOB_SUBST

else

  case `(set -o) 2>/dev/null` in #(

  *posix*) :

    set -o posix ;; #(

  *) : 

    ;;

esac

fi

2 个答案:

答案 0 :(得分:0)

错误消息中的这一行:

'/configure: line 31: `;;

在行的开头有'个字符,因为在它抱怨的令牌中实际上有一个返回字符:;;\r

configure脚本具有Windows样式的CR-LF行结尾,shell无法识别;它需要Unix风格的LF行结尾,并将CR视为普通字符,导致语法错误。

使用configure过滤dos2unix脚本,将其转换为Unix风格的行结尾。

请务必先阅读dos2unix手册页;与大多数文本过滤器不同,它默认会覆盖其输入文件。

答案 1 :(得分:0)

解决!!最初我用Winzip解压缩了freetds下载。在遇到上述问题后,我删除了下载。重新加载,然后使用UNIX命令解压缩。现在工作正常。