我试图运行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
答案 0 :(得分:0)
错误消息中的这一行:
'/configure: line 31: `;;
在行的开头有'
个字符,因为在它抱怨的令牌中实际上有一个返回字符:;;\r
。
configure
脚本具有Windows样式的CR-LF行结尾,shell无法识别;它需要Unix风格的LF行结尾,并将CR视为普通字符,导致语法错误。
使用configure
过滤dos2unix
脚本,将其转换为Unix风格的行结尾。
请务必先阅读dos2unix
手册页;与大多数文本过滤器不同,它默认会覆盖其输入文件。
答案 1 :(得分:0)
解决!!最初我用Winzip解压缩了freetds下载。在遇到上述问题后,我删除了下载。重新加载,然后使用UNIX命令解压缩。现在工作正常。