Cygwin: xterm startet nicht in Benutzer $ HOME ...?

1721
DevSolar

Ich habe eine funktionierende Xming / Cygwin-Installation unter Windows installiert. Nun, meistens ...

Ich habe mein Home-Verzeichnis in / etc / passwd auf / cygdrive / d gesetzt. Wenn ich die Cygwin Bash Shell (das aufgepimpte DOS-Fenster) starte, funktioniert dies - $ HOME ist auf / cygdrive / d eingestellt, Cygwin findet mein ~ / .bash_profile, alles ist in Ordnung.

Allerdings, wenn ich einen Start xterm, beginnt es in /cygdrive/c/Documents and Settings/<Username>, und es ist nicht meinen Bash_profile Quelle, die ärgerlich wie die Hölle ist.

Irgendwann an diesem Nachmittag hat es funktioniert, und jetzt ist es kaputt, aber für mein Leben kann ich mich nicht erinnern, wie ich es gebrochen habe.

Hilfe?

Edit: Sorry, ich hätte präziser sein sollen. Das xterm wird als xterm -ls, dh als Login-Shell gestartet . Es tut das globale Profil finden (weil es eine bash läuft und setzt $ PS1 richtig), aber es wird offensichtlich über $ HOME verwirrt (und damit nicht ~ / .bash_profile nicht laufen, weil sie es nicht finden können).

Ich kenne ein oder zwei Möglichkeiten, um das Problem zu umgehen, aber ich würde gerne die Ursache für diesen Fehler feststellen, nicht die Auswirkungen korrigieren.

Edit2: Weitere Tests haben gezeigt, dass dies - $ HOME wird nicht gemäß / etc / passwd gesetzt wird - nur dann auftritt, wenn die Anwendung über das Taskleistenmenü von Xming / Xmingrc gestartet wird . Es ist auch ansteckend: Jedes Sub-Xterm, das von einem "defekten" Xterm gestartet wurde, öffnet sich im falschen $ HOME. Umgekehrt gilt Folgendes : Jeder Bash / Xterm, der außerhalb des Xmingrc-Menüs (das sich im richtigen $ HOME öffnet) gestartet wurde, kann auch Sub-Xterms starten, die ebenfalls korrekt sind.

Ich bin hier etwas verwirrt.

0
Möglicherweise ist HOME bereits auf "C: \ Dokumente und Einstellungen \" gesetzt.`Wenn Xterm aufgerufen wird? Dies würde die Einstellung `/ etc / passwd` überschreiben. ak2 vor 13 Jahren 0
@ ak2: Kann nicht wirklich sein. Wenn ich die Cygwin Bash Shell (DOS-Box) starte, ist HOME richtig eingestellt. Dabei spielt es keine Rolle, ob ich den Xterm von dieser Bash-Shell oder direkt über eine Destop-Verknüpfung starte. Aber ich werde das morgen noch einmal überprüfen (es ist meine Büro-Workstation, von der ich rede). DevSolar vor 13 Jahren 0

2 Antworten auf die Frage

0
Gilles

xtermStartet im aktuellen Verzeichnis und führt das Programm aus, das Sie ausführen sollen (standardmäßig Ihre bevorzugte Shell, jedoch keine Login-Shell). Das gilt sowohl für Windows als auch für Unix. Wenn Sie eine Login-Shell haben möchten, führen Sie den Befehl aus xterm -e bash --login. Wenn Sie in Ihrem Basisverzeichnis starten möchten, legen Sie das Verzeichnisfeld in der Verknüpfung fest (vorausgesetzt, Sie starten Xterm von einer Windows-Verknüpfung aus).

Siehe aktualisierte Frage, sorry. DevSolar vor 13 Jahren 0
0
DevSolar

Ich habe die Antwort in der Xming-Dokumentation versteckt. Wenn HOMEim System keine Umgebungsvariable festgelegt ist, setzt Xming%USERPROFILE% den Wert auf .

Was wiederum die Cygwin- /etc/passwdEinstellungen überschreibt, wie ak2 hervorhebt.

Die Lösung besteht also darin, HOME manuell in der Systemsteuerung einzustellen.

Oder verwenden Sie Cygwins eigenen X-Server anstelle von Xming. (Es ist das xorg-server-Paket in setup.exe.) ak2 vor 13 Jahren 0