Ошибка при попытке вызвать команду rails через Cygwin в Windows (устанавливается через railsinstaller) - PullRequest
3 голосов
/ 29 марта 2012

Я следовал этому туториалу для установки ruby ​​на рельсы на окнах.(шаги объяснены в видео в середине страницы)

Если я запускаю команду rails в классической оболочке Windows (windows + r> cmd> enter), она работает нормально.Тем не менее, я хотел бы иметь возможность вызывать его в оболочке Cygwin.Но если я это сделаю, например:

$> rails s # in cygwin

У меня будет следующая ошибка:

C: \ RailsInstaller \ Ruby1.9.3 \ bin \ ruby.exe: такого файла нетили каталог - /cygdrive/c/RailsInstaller/Ruby1.9.3/bin/rails (LoadError)

Я посмотрел в эту папку: C:\RailsInstaller\Ruby1.9.3\bin\, и действительно нет rails.exe, но только файл rails и rails.bat.

rails.bat выглядит так:

@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"ruby.exe" "C:/Projects/railsinstaller/stage/Ruby1.9.3/bin/rails" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"ruby.exe" "%~dpn0" %*

Я знаю только, что cygwin ищет файлы .exe (например, если вы наберетеcp, будет ли выполняться исполняемый файл cp.exe).Я не знаю, как работают .bat файлы.

Так вы знаете, как я могу сделать так, чтобы cygwin мог вызывать команду rails?

Ответы [ 5 ]

2 голосов
/ 04 марта 2015

Я столкнулся с той же проблемой в cygwin, но команда "rails" работала нормально в командной строке windows cmd. Как развернуться Вызовите следующую команду в cygwin,
alias rails='path_to_ruby_installed_directory/bin/rails.bat'

В вашем случае
alias rails ='C:/Projects/railsinstaller/stage/Ruby1.9.3/bin/rails.bat'

Чтобы сделать псевдоним постоянным, Отредактируйте файл .bashrc в домашнем каталоге CYGWIN и добавьте в него указанный выше псевдоним.

2 голосов
/ 24 марта 2013

Как вы уже сказали, рельсы на окнах - это файл ".bat". Просто используйте расширение .bat в каждой команде. У меня это сработало.

Попробуйте и посмотрите: "rails.bat -v" (в Cygwin)

1 голос
/ 29 марта 2012

Не рекомендуется использовать Cygwin, поскольку все настроено для использования с командной строкой.Возможно, вы сможете заставить работать git-bash, но командная строка, включенная в RI, является поддерживаемым методом использования RailsInstaller.Если вы хотите использовать Cygwin, я бы рекомендовал не использовать RailsInstaller.

0 голосов
/ 05 сентября 2015

Добавьте это к вашему .bashrc или .zshrc, чтобы создать псевдоним для всех соответствующих .bat:

# cygwin
if [[ -n "$(which ruby 2>/dev/null)" ]]; then
  RUBY_BIN=$(cygpath -u $(ruby -e 'puts RbConfig::CONFIG["bindir"]') | tr -d '\r')
  for f in $(find ${RUBY_BIN} -regex ".*bat$"| xargs -n1 basename); do
    alias ${f%.bat}=${f}
  done
fi

Спасибо https://stackoverflow.com/a/19424481/1248256

0 голосов
/ 13 декабря 2012

Я так долго страдал от этой проблемы, и я только что нашел обходной путь, в терминале Cygwin:

Программа установки ln -s-rails-of-rails-/ RailsInstaller / Ruby1.9.3 / bin / ruby.exe / bin / ruby Установщик ln -s-path-of-you-rails-/ RailsInstaller / Ruby1.9.3 / bin / rails.bat / bin / rails

ps: полный путь будет примерно таким: /cygdrive/d/RailsInstaller/Ruby1.9.3/bin/ruby.exe

и затем в Cygwin можно вызывать рельсы.

...