Я пытаюсь заставить Cygwin (CYGWIN_NT-6.1 / 2.11.1 (0.329 / 5/3)) запускаться с tcsh
качестве оболочки по умолчанию в Windows 7. Я прочитал этот вопрос и ответы там, но у меня были некоторые проблемы с мятным методом, упомянутым в этом конкретном ответе:
Если вы запустите Cygwin с помощью mintty, то добавьте оболочку в качестве параметра.
mintty /usr/bin/zsh -
Вот что происходит:
- используя завершающую черту для вызова интерактивной оболочки (?), заставляет окно мигать и снова исчезает (независимо от того, использую ли я
-l
) mintty /bin/tcsh
без завершающей черты или-l
, окно оболочки Cygwin открывается, но многие встроенные команды приводят к "фатальной ошибке - обнаружена несоответствие базы Cygwin ...". Я искал и нашел более старую версиюcygwin1.dll
(в ConEmu /wsl), как указано в сообщении об ошибке, переименовал его, но безрезультатно - я продолжаю получать ту же ошибкуmintty /bin/tcsh -l
дает лучшие результаты, но начинается с домашнего каталога как Windows% USERPROFILE%. Это означает, что он также обходит мой.tcshrc
в моем домашнем каталоге cygwin (<CygwinDir>/home/<account>
), но, как ни странно, обрабатывает.aliases
оттуда. Также странно, что точка выше (mintty
без завершающего тире или-l
) начинается в правильном домашнем каталоге cygwin.- Я также попытался отредактировать
/etc/nsswitch.conf
, как было предложено в другом ответе, но это не имело никакого значения. - Установка Windows SHELL env var в
/usr/bin/tcsh
, как было предложено в другом ответе на упомянутый вопрос, сработала при запуске с ярлыка на рабочем столе, но я не думаю, что это "правильный" способ сделать это. Когда я запускаю mintty из командной строки Windows, я получаю сообщение об ошибке"Failed to run '/usr/bin/tcsh': No such file or directory"
.
Почему якобы хороший ответ не работает для меня? Кто-нибудь может сказать, как это сделать правильно? Кроме того, кто-нибудь может объяснить загадки завершающего тире, фатальной ошибки, nsswitch или переменной SHELL?