Опция «tty» обнаружена в переменной окружения CYGWIN

12

Недавно я переустановил cygwin на моем компьютере с Windows 7 и добавил каталог cygwin в свой путь, чтобы он легко работал с командной строкой Windows. Каждый раз, когда я выполняю команду, я получаю следующий фактический результат:

"tty" option detected in CYGWIN environment variable.
CYGWIN=tty is no longer supported.  Please remove it from your
CYGWIN environment variable and use a terminal emulator like mintty,
xterm, or rxvt.

Как я могу избавиться от этого, чтобы я мог использовать Cygwin в моей командной строке без раздражающего заголовка?

Ewok
источник
Вы пытались следовать советам в предупреждении?
ak2
как мне "удалить его из моей переменной окружения CYGWIN"? Я бы предпочел не использовать эмулятор, так как мне нравится беспроблемность использования команд cygwin в командной строке Windows.
EWok
1
Вы должны где-то установить переменную среды CYGWIN, например, в сценарии, который вы используете для запуска командной строки, или в глобальной среде Windows. Вы можете найти последний в Панели управления, в System-> Advanced-> Environment Variables. (По крайней мере, там они и есть в XP; они могли бы переместиться в 7.)
ak2
нашел это. Это было в переменных среды. пост в качестве ответа, чтобы я мог принять
ewok

Ответы:

18

У меня была та же проблема, но не было настройки для CYGWINпеременной среды ни в одном скрипте, ни в свойствах компьютера (Панель управления).

Затем я обнаружил, что sshdслужба имеет параметр для CYGWINпеременной среды в реестре Windows под следующим ключом:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\sshd\Parameters\Environment

При удалении ttyопции в @CYGWINстроке предупреждение об устаревании больше не появляется при выполнении команд.

VirtualStaticVoid
источник
Да, у меня это сработало, а ответ ak2'a - нет. Как вы столкнулись с этим?
Бароп
Спасибо, у меня это тоже сработало! Я бы никогда не открыл это, я полагаю ... Спасибо!
MarcoS
1
В моем sshdразделе этого не было, но я нашел свой в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. Поиск в реестре ttyдает много ложных срабатываний; поиск binmodeгораздо эффективнее.
Ройс Уильямс
Как вы удалили опцию tty из @CYGWIN?
ingh.am
3

Вы должны где-то установить переменную среды CYGWIN, например, в сценарии, который вы используете для запуска командной строки, или в глобальной среде Windows. Вы можете найти последний в Панели управления, в System-> Advanced-> Environment Variables. (По крайней мере, там они и есть в XP; возможно, они переместились в 7.)

ak2
источник
CYGWINПеременная sshdне установлена там.
reinierpost
1

+1 для VirtualStaticVoid

Вы можете увидеть настройки здесь:

$ cat /proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/sshd/Parameters/Environment/CYGWIN
tty ntsec

Но это только для чтения. Вот как это исправить только с помощью ssh:

Создать sshd-env.reg

$ cat <<EOF >sshd-env.reg
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sshd\Parameters\Environment]
"CYGWIN"="ntsec"
EOF

Импортируйте его в реестр:

$ regedit.exe -s sshd-env.reg

Убедитесь, что это заняло:

$ cat /proc/registry/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/sshd/Parameters/Environment/CYGWIN
ntsec

Как-нибудь перезапусти sshd.

Кажется, у cygrunsrv нет опции --restart. Позор. Без установленного crontab, который не установлен по умолчанию, перезагрузить компьютер может быть проще всего. В конце концов, это окна.

$ shutdown -r -t 0
Дэн Гартвейт
источник
Отличный ответ, возможность сделать все это с помощью командной строки
Людовик Куты