Por que o Cygwin não executa aplicativos do Windows que interagem com o shell / linha de comando?

1

Após uma atualização recente, o shell bash do Cygwin funciona para qualquer comando que não requer interação, mas se um aplicativo precisar de interação (por exemplo, o shell do python), ele não funcionará, o prompt nunca aparece, digitando o trabalho conhecido comandos não produzem saída.

Li outros lugares em que as pessoas sugerem menta, mas ela se comporta da mesma maneira.

O shell é completamente funcional com a recuperação da linha de comando, executando scripts que não requerem interação, etc ..., mas não funcional assim que um programa solicita algum ou possui algum prompt.

Tudo isso parece estranho, já que o bash está fazendo exatamente o que os outros aplicativos estão fazendo, interagindo com o usuário, mas todos os outros aplicativos parecem estar bloqueados de interagir.

emacs e vi trabalham, no entanto, parecem ser as exceções à regra.

cygwin python também funciona, mas o windows python não funciona, e a maioria dos meus virtualenvs são construídos com o windows python.

    
por boatcoder 21.10.2013 / 14:43

2 respostas

2

Você quer dizer aplicativos interativos do Windows ou aplicativos interativos do Cygwin?

O Windows e o Linux / Unix usam métodos diferentes para interagir com o terminal ou console. O terminal Cygwin padrão agora é o mintty, que usa a interface padrão do Unix tty. Os aplicativos de console do Windows esperam poder usar a interface do console do Windows, que é diferente da interface tty e não é suportada pelo mintty.

Se você precisar executar aplicativos do console interativo do Windows, use o console do Windows ou uma das alternativas disponíveis que usam a interface do console. Ao usar o mintty do Cygwin, é melhor ficar com os aplicativos do Cygwin, pelo menos os interativos.

    
por 21.10.2013 / 16:41
0

As DLLs do Cygwin às vezes "ficam malucas". Você reiniciou? Talvez você queira experimentar o rebaseall: Executando o rebaseall no Cygwin ou link

(O wonkyness é baseado na implementação do pseudo fork () no windows)

    
por 21.10.2013 / 14:56