Cygwin: xterm не починається з користувача $ HOME…?


0

У мене в Windows встановлена ​​робоча установка Xming / Cygwin. Ну, переважно ...

Я встановив свій домашній каталог на / cygdrive / d в / etc / passwd. Коли я запускаю оболонку Cygwin Bash (зведене вікно DOS), це працює - $ HOME встановлено на / cygdrive / d, Cygwin знаходить мій ~ / .bash_profile, все добре.

Однак , коли я запускаю xterm, він запускається /cygdrive/c/Documents and Settings/<Username>, і він не джерело мого .bash_profile, що дратує як пекло.

Колись у цей день, він працював, і зараз він зламаний, але я не можу пригадати, як я його зламав.

Допомога?

Редагувати: Вибачте, я повинен був бути більш точним. Xterm запускається як xterm -ls, тобто як оболонка входу. Він дійсно знаходить глобальний профіль (тому що він запускає bash і встановлює $ PS1 правильно), але він, очевидно, плутається з приводу $ HOME (і, отже, не запускає ~ / .bash_profile, тому що не може його знайти).

Я знаю спосіб чи два, щоб обходити це, але я хотів би знайти причину цієї макетування, а не виправити наслідки.

Edit2: Подальше тестування показало, що це - $ HOME не встановлюється відповідно до / etc / passwd - відбувається лише тоді, коли програма запущена з меню панелі завдань Xming / Xmingrc . Це також заразно: будь-який суб-xterm, розпочатий із "зламаного" xterm, відкриється в неправильному $ HOME. Так само навпаки: будь-який bash / xterm, розпочатий за межами меню Xmingrc (який відкриється у належному $ HOME), може запустити під-xterms, які також є правильними.

Я тут трохи розгублений.


Можливо, HOME вже встановлено, C:\Documents and Settings\<user>коли викликається xterm? Це би перекрило /etc/passwdналаштування.
ak2

@ ak2: Не може бути, справді. Коли я запускаю оболонку Cygwin Bash (DOS box), HOME встановлено правильно. І не має значення, чи запускаю я xterm з цього bash shell або безпосередньо через ярлик для зупинки. Але я ще двічі перевіряю це завтра (про це говорять мої офісні робочі місця).
DevSolar

Відповіді:


0

xtermзапускається в поточному каталозі і виконує програму, яку ви кажете їй виконати (ваша бажана оболонка за замовчуванням, але не оболонка для входу). Це вірно і в Windows, і в Unix. Якщо ви хочете мати оболонку для входу, запустіть xterm -e bash --login. Якщо ви хочете почати у своєму домашньому каталозі, встановіть поле каталогу в ярлику (припустимо, що ви починаєте xterm з ярлика Windows).


Дивіться оновлене запитання, вибачте.
DevSolar

0

Я знайшов відповідь прихованою в документації Xming. Якщо HOMEв системі не встановлена ​​змінна середовища, Xming встановлює її%USERPROFILE% .

Як, в свою чергу /etc/passwd, ак2 відміняє налаштування Cygwin .

Отже, рішення полягає в ручному встановленні ДОМАШНОГО на панелі управління.


Або використовуйте власний X-сервер Cygwin замість Xming. (Це пакет xorg-сервера в setup.exe.)
ak2
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.