Синтаксическая ошибка при запуске файла конфигурации FreeTDS

Я пытаюсь запустить Ruby on Rails и подключиться к базе данных MS SQL. У меня установлен RoR, и я создал базу данных, к которой буду подключаться. Я создал тестовую модель, и при попытке $ rake db:migrate я получил ошибку rake aborted (нет такого файла для загрузки — tiny_tds). В этот момент я скачал и распаковал FreeTDS. Когда я отправляю $ ./configure, возникают проблемы.

Ниже приведена команда и полученное сообщение об ошибке (терминал Cygwin на компьютере с ОС Windows 7 Pro):

$ ./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

person Was-a-golfer    schedule 25.07.2012    source источник


Ответы (2)


Эта строка в сообщении об ошибке:

'/configure: line 31: `;;

имеет символ ' в начале строки, потому что на самом деле в токене, на который он жалуется, есть символ возврата: ;;\r.

Сценарий configure имеет окончания строк CR-LF в стиле Windows, которые оболочка не распознает; он требует окончания строки LF в стиле Unix и обрабатывает CR как обычный символ, что приводит к синтаксическим ошибкам.

Отфильтруйте сценарий configure, используя dos2unix, чтобы преобразовать его в окончания строк в стиле Unix.

Обязательно сначала прочитайте справочную страницу dos2unix; в отличие от большинства текстовых фильтров, он по умолчанию перезаписывает свой входной файл.

person Keith Thompson    schedule 25.07.2012

Решено!! Сначала я разархивировал загрузку freetds с помощью Winzip. После борьбы с вышеуказанной проблемой я удалил загрузку. Повторно загружен, а затем извлечен с помощью команды UNIX. Теперь работает нормально.

person Was-a-golfer    schedule 26.07.2012