Wykryto opcję „tty” w zmiennej środowiskowej CYGWIN

12

Niedawno ponownie zainstalowałem cygwin na moim komputerze z systemem Windows 7 i dodałem katalog cygwin do mojej ścieżki, aby działał bezproblemowo z wierszem poleceń systemu Windows. Za każdym razem, gdy wykonuję polecenie, powyżej rzeczywistego wyjścia otrzymuję:

"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.

Jak mogę się tego pozbyć, aby móc używać cygwina w wierszu poleceń bez irytującego nagłówka?

ewok
źródło
Czy próbowałeś zastosować się do porady zawartej w ostrzeżeniu?
ak2
jak „usunąć go ze zmiennej środowiskowej CYGWIN”? Wolałbym nie używać emulatora, ponieważ podoba mi się płynność korzystania z poleceń cygwin w wierszu poleceń systemu Windows.
ewok
1
Musisz mieć gdzieś zmienną środowiskową CYGWIN, np. W skrypcie używanym do uruchamiania wiersza polecenia lub w globalnym środowisku Windows. Możesz znaleźć to drugie w Panelu sterowania, w System-> Zaawansowane-> Zmienne środowiskowe. (Przynajmniej tam są w XP; mogli się przenieść w 7.)
ak2
znalazłem to. To było w zmiennych środowiskowych. dodaj jako odpowiedź, żebym mógł zaakceptować
ewok

Odpowiedzi:

18

Miałem ten sam problem, ale nie było ustawienia CYGWINzmiennej środowiskowej w żadnym skrypcie ani we właściwościach komputera (Panel sterowania).

Następnie odkryłem, że sshdusługa ma ustawienie CYGWINzmiennej środowiskowej w rejestrze systemu Windows pod następującym kluczem:

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

Po usunięciu ttyopcji w @CYGWINciągu ostrzeżenie o wycofaniu przestaje być wyświetlane podczas wykonywania poleceń.

VirtualStaticVoid
źródło
Tak, to zadziałało dla mnie, a odpowiedź ak2'a nie. Jak na to wpadłeś?
barlop
Dzięki, to też zadziałało dla mnie! Nigdy bym tego nie odkrył, jak sądzę ... Dzięki!
MarcoS,
1
Moja sshdsekcja tego nie miała, ale znalazłem swoją HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment. Przeszukiwanie rejestru w poszukiwaniu ttywielu fałszywych wyników pozytywnych; wyszukiwanie binmodejest o wiele bardziej skuteczne.
Royce Williams
Jak usunąłeś opcję tty z @CYGWIN?
ingh.am
3

Musisz mieć gdzieś zmienną środowiskową CYGWIN, np. W skrypcie używanym do uruchamiania wiersza polecenia lub w globalnym środowisku Windows. Możesz znaleźć to drugie w Panelu sterowania, w System-> Zaawansowane-> Zmienne środowiskowe. (Przynajmniej tam, gdzie są w XP; mogli się przenieść w 7.)

ak2
źródło
CYGWINZmienną sshdnie jest tam ustawiony.
reinierpost
1

+1 dla VirtualStaticVoid

Możesz zobaczyć ustawienie tutaj:

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

Ale jest tylko do odczytu. Oto jak to naprawić za pomocą samego dostępu ssh:

Utwórz 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

Zaimportuj do rejestru:

$ regedit.exe -s sshd-env.reg

Sprawdź, czy zajęło:

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

Jakoś zrestartuj sshd.

Wygląda na to, że cygrunsrv nie ma opcji --restart. Wstyd. Bez zainstalowanego programu crontab, co nie jest domyślnie, najłatwiej jest ponownie uruchomić komputer. W końcu to są okna.

$ shutdown -r -t 0
Dan Garthwaite
źródło
Świetna odpowiedź, ponieważ można to wszystko zrobić za pomocą wiersza polecenia
Ludovic Kuty,