Cygwin: xterm não inicia no usuário $ HOME…?

0

Eu tenho uma instalação do Xming / Cygwin em funcionamento no meu Windows. Bem, principalmente ...

Eu configurei meu diretório home para / cygdrive / d em / etc / passwd. Quando eu inicio o Cygwin Bash Shell (a janela DOS do pimpe-up), isso funciona - $ HOME está configurado para / cygdrive / d, o Cygwin encontra meu ~ / .bash_profile, está tudo bem.

No entanto , quando eu começo um xterm , ele começa em /cygdrive/c/Documents and Settings/<Username> , e ele não fonte meu .bash_profile, que é chato pra caramba. / p>

Em algum momento durante esta tarde, funcionou, e agora está quebrado, mas pela minha vida eu não consigo lembrar como eu quebrei isso.

Ajuda?

Edit: Desculpe, eu deveria ter sido mais preciso. O xterm é iniciado como xterm -ls , ou seja, como shell de login. Ele faz encontrar o perfil global (porque ele executa um bash e define $ PS1 corretamente), mas obviamente fica confuso sobre $ HOME (e, portanto, não executa ~ / .bash_profile porque não pode encontrá-lo) .

Eu conheço uma ou duas maneiras de contornar isso, mas eu gostaria de encontrar a causa desse muckup, e não corrigir os efeitos.

Edit2: Outros testes mostraram que - $ HOME não está definido de acordo com / etc / passwd - acontece somente quando o aplicativo é iniciado a partir do menu da barra de tarefas Xming / Xmingrc . É também contagiante: Qualquer sub-xterm iniciado a partir de um xterm "quebrado" é aberto no $ HOME errado. Da mesma forma, o inverso: Qualquer bash / xterm iniciado fora do menu Xmingrc (que abre no $ HOME apropriado) pode iniciar sub-xterms que também estão corretos.

Eu sou um bit confuso aqui.

    
por DevSolar 06.08.2010 / 17:07

2 respostas

0

Eu encontrei a resposta escondida na documentação do Xming. Se nenhuma variável de ambiente HOME estiver configurada no sistema, Xming a definirá como %USERPROFILE% .

O qual, por sua vez, substitui as configurações do /etc/passwd do Cygwin, como apontado ak2.

Portanto, a solução é definir manualmente HOME no painel de controle.

    
por 09.08.2010 / 10:10
0

xterm inicia no diretório atual e executa o programa que você diz para executar (seu shell preferido por padrão, mas não um shell de login). Isso é verdade tanto no Windows quanto no Unix. Se você deseja ter um shell de login, execute xterm -e bash --login . Se você deseja iniciar em seu diretório inicial, defina o campo de diretório no atalho (supondo que você esteja iniciando o xterm a partir de um atalho do Windows).

    
por 06.08.2010 / 19:45