Cygwin: ¿xterm no comienza en el usuario $ HOME ...?


0

Tengo una instalación de Xming / Cygwin en mi Windows. Bueno, sobre todo ...

Configuré mi directorio de inicio a / cygdrive / d en / etc / passwd. Cuando inicio el Cygwin Bash Shell (la ventana de DOS acortada), esto funciona: $ HOME se establece en / cygdrive / d, Cygwin encuentra mi ~ / .bash_profile, todo está bien.

sin embargo , cuando empiezo un xterm, comienza en /cygdrive/c/Documents and Settings/<Username>, y lo hace no fuente mi .bash_profile, que es molesto como el infierno.

En algún momento durante esta tarde, funcionó, y ahora está roto, pero por mi vida no puedo recordar cómo lo rompí.

¿Ayuda?

Editar: Lo siento, debería haber sido más preciso. El xterm se inicia como xterm -ls, es decir, como shell de inicio de sesión. Eso hace encuentre el perfil global (porque ejecuta un bash y establece $ PS1 correctamente), pero obviamente se confunde con $ HOME (y por lo tanto no ejecuta ~ / .bash_profile porque no puede encontrarlo)

Conozco una o dos maneras de solucionarlo, pero me gustaría encontrar el porque De este muckup, no arreglamos los efectos.

Edit2: Pruebas adicionales demostraron que esto - $ HOME no se establece de acuerdo con / etc / passwd - sucede solo cuando la aplicación se inicia desde el menú de la barra de tareas de Xming / Xmingrc . También es contagioso: cualquier sub-xterm iniciado desde un xterm "roto" se abre en el $ HOME incorrecto. Igualmente al revés: comenzó cualquier bash / xterm fuera de El menú Xmingrc (que se abre en el $ HOME apropiado) puede iniciar sub-xterms que también son correctos.

Soy un poco confundido aqui


Puede que HOME ya esté configurado para C:\Documents and Settings\<user> cuando se invoca xterm? Eso anularía el /etc/passwd ajuste.
ak2

@ ak2: No puede ser, realmente. Cuando inicio el shell de Cygwin Bash (cuadro de DOS), HOME está configurado correctamente. Y no importa si comienzo el xterm desde ese shell bash o directamente a través de un atajo de destop. Pero voy a revisar esto mañana (estoy hablando de la estación de trabajo de mi oficina).
DevSolar

Respuestas:


0

xterm comienza en el directorio actual y ejecuta el programa que le indica que ejecute (su shell preferido por defecto, pero no un shell de inicio de sesión). Eso es cierto tanto en Windows como en Unix. Si quieres tener un shell de inicio de sesión, ejecuta xterm -e bash --login. Si desea comenzar en su directorio de inicio, configure el campo del directorio en el acceso directo (asumiendo que está iniciando xterm desde un acceso directo de Windows).


Ver pregunta actualizada, lo siento.
DevSolar

0

Encontré la respuesta oculta en la documentación de Xming. Si no HOME variable de entorno se establece en el sistema, Xming lo establece en %USERPROFILE%.

Que a su vez anula el Cygwin /etc/passwd Configuraciones, como señala ak2.

Por lo tanto, la solución es configurar manualmente el INICIO en el panel de control.


O use el propio servidor X de Cygwin en lugar de Xming. (Es el paquete xorg-server en setup.exe).
ak2
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.