У меня есть рабочий Xming / установка Cygwin, настроенная в моем Windows. Ну, главным образом...
Я действительно устанавливал свой корневой каталог на/cygdrive/d в/etc/passwd. Когда я запускаю Bash Cygwin Shell (pimped окно DOS), это работает - $HOME установлен на/cygdrive/d, Cygwin находит мой ~/.bash_profile, все прекрасно.
Однако, когда я запускаю xterm
, это запускается в /cygdrive/c/Documents and Settings/<Username>
, и это не получает мой .bash_profile, который является раздражающим как ад.
Когда-то в течение этого дня, это работало, и теперь это повреждается, но ни за что в жизни я не могу помнить, как я повредил его.
Помощь?
Править: Извините, я должен был быть более точным. xterm запускается как xterm -ls
, т.е. как оболочка входа в систему. Это действительно находит глобальный профиль (потому что это выполняет удар и устанавливает $PS1 правильно), но это, очевидно, запутывается о $HOME (и таким образом не выполняет ~/.bash_profile, потому что это не может найти его).
Я знаю, что путь или два работает вокруг этого, но я хотел бы найти причину этого muckup, не зафиксировать эффекты.
Edit2: Дальнейшее тестирование показало, что это - $HOME, не устанавливаемый согласно/etc/passwd - происходит только, когда приложение запущено от Xming / меню панели задач Xmingrc. Это также заразно: Любой sub-xterm, запущенный с "поврежденного" xterm, открывается в неправильном $HOME. Аналогично наоборот: Любой удар / xterm запустился вне меню Xmingrc (который открывается в надлежащем $HOME), может запустить sub-xterms, которые также корректны.
Я немного смущен здесь.
Я нашел ответ спрятанным в документации Xming. Если нет HOME
переменная среды установлена в системе, Xming устанавливает ее на %USERPROFILE%
.
Который в свою очередь переопределяет Cygwin /etc/passwd
настройки, как ak2 указанный.
Так, решение состоит в том, чтобы вручную установить ДОМОЙ в панели управления.
xterm
запускается в текущем каталоге и выполняет программу, которую Вы говорите ему выполнять (Ваша предпочтительная оболочка по умолчанию, но не оболочка входа в систему). Это правда в Windows, а также Unix. Если Вы хотите иметь оболочку входа в систему, работать xterm -e bash --login
. Если Вы хотите запуститься в своем корневом каталоге, установить поле каталога в ярлыке (предполагающий запуск xterm с ярлыка Windows).