Cygwin: xterm, не запускающийся в пользовательском $HOME …?

У меня есть рабочий 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, которые также корректны.

Я немного смущен здесь.

0
задан 09.08.2010, 10:30

2 ответа

Я нашел ответ спрятанным в документации Xming. Если нет HOME переменная среды установлена в системе, Xming устанавливает ее на %USERPROFILE%.

Который в свою очередь переопределяет Cygwin /etc/passwd настройки, как ak2 указанный.

Так, решение состоит в том, чтобы вручную установить ДОМОЙ в панели управления.

0
ответ дан 27.11.2019, 19:23

xterm запускается в текущем каталоге и выполняет программу, которую Вы говорите ему выполнять (Ваша предпочтительная оболочка по умолчанию, но не оболочка входа в систему). Это правда в Windows, а также Unix. Если Вы хотите иметь оболочку входа в систему, работать xterm -e bash --login. Если Вы хотите запуститься в своем корневом каталоге, установить поле каталога в ярлыке (предполагающий запуск xterm с ярлыка Windows).

0
ответ дан 27.11.2019, 19:23

Теги

Похожие вопросы