Некоторое время я использовал Cygwin на рабочем столе Windows и был счастлив, пока недавно не установил какое-то другое приложение. Само это приложение здесь не актуально (назовем его ABC-приложением), главное, что оно установило MKS Toolkit вместе с ним. Поскольку я устанавливал приложение в качестве администратора, менеджер установки добавил MKS Toolkit в начале системной переменной PATH. Теперь MKS Toolkit скрывает / скрывает Cygwin, а Cygwin фактически сломан. Я мог бы удалить MKS Toolkit из системной переменной PATH, поскольку я не собираюсь использовать его напрямую, но я не уверен, как это повлияет на приложение ABC.

Вопрос в том, могу ли я сохранить MKS Toolkit в начале системной переменной PATH и одновременно использовать Cygwin? Если да, то что для этого нужно сделать?

Вот как я запустил Cygwin (на самом деле это ярлык по умолчанию):

<my_path_to_cygwin>\bin\mintty.exe -i /Cygwin-Terminal.ico -

Что у меня сейчас в Cygwin:

echo $PATH
C:\Program Files (x86)\MKS Toolkit\mksnt;C:\PROGRA~2\MKSTOO~in64;C:\PROGRA~2\MKSTOO~in;C:\PROGRA~2\MKSTOO~in\X11;...the rest of the PATH...

which bash
C:/Program Files (x86)/MKS Toolkit/mksnt/bash.exe

Что у меня есть в cmd.exe:

echo %PATH%
C:\Program Files (x86)\MKS Toolkit\mksnt;C:\PROGRA~2\MKSTOO~1\bin64;C:\PROGRA~2\MKSTOO~1\bin;C:\PROGRA~2\MKSTOO~1\bin\X11;...the rest of the PATH...

which bash
C:/Program Files (x86)/MKS Toolkit/mksnt/bash.exe

Примечание: у меня также есть GitBash и, похоже, MKS Toolkit на него не повлиял.

Что я имею в GitBash:

$ echo $PATH
/c/Users/<username>/bin:.:/usr/local/bin:/mingw/bin:/bin:/c/Program Files (x86)/MKS Toolkit/mksnt:/c/PROGRA~2/MKSTOO~1/bin64:/c/PROGRA~2/MKSTOO~1/bin:/c/PROGRA~2/MKSTOO~1/bin/X11:...the rest of the PATH...
$ which bash
/bin/bash

1 ответ1

0

Я внимательно прочитал Mintty Man (https://mintty.github.io/mintty.1.html) и обнаружил, что:

If a program name is supplied on the command line, this is executed with any additional arguments given. Otherwise, mintty looks for a shell to execute in the SHELL environment variable. If that is not set, it reads the user’s default shell setting from /etc/passwd. As a last resort, it falls back to /bin/sh.

Итак, я добавил пользовательскую переменную уровня SHELL env со значением /bin/bash и она восстановила мой Cygwin. Мне не нужно изменять мятный ярлык цели.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .