Rodando aplicativos gráficos Linux em Windows 10

Com o novo Windows 10 (Anniversary Update) veio uma novidade muito interessante, voltada para desenvolvedores: ele traz o Bash On Ubuntu On Windows. O nome comprido é pra indicar o que oficialmente você ganha: um bash, que roda sobre um Ubuntu, que roda sobre o Windows.

De maneira resumida: não é uma maquina virtual como estamos acostumados, nem aplicações GNU compiladas pra Windows, mas sim uma camada que mapeia parte das chamadas que aplicações normalmente fazem para o Kernel Linux, e as redireciona para o Windows, isto dentro de um “cercado” do bash (você – teoricamente – precisa entrar no bash pra acessar as aplicações). O interessante é: as aplicações que são executadas são o binários originais compilados pra Ubuntu, ou seja, você pode usar virtualmente qualquer coisa compilada para Ubuntu.

A Microsoft, entretando, parece vender a funcionalidade como algo mais restrito: um shell com ferramentas que desenvolvedores estão acostumados: grep, cat, cut, etc. Afirma que não é possível executar aplicações gráficas, é só pra desenvolvedor usar as ferramentas que ele está acostumado no mundo Linux e destaque que muita coisa pode não funcionar. Mas se você é como eu, não apenas já tinha o bash e essas ferramentas instaladas no Windows (mas compiladas pra Windows), como já imaginou que dá pra fazer mais – muito mais – do que o discurso oficial. E você está certo!

Deixemos de fora paixões, preconceitos e filosofias – há muito espaço para discutir isso na internet. A ideia é explorar o potencial deste recurso, e não analisar se é melhor ou pior que outros. E vamos pular o discurso oficial e ir direto ao assunto: como é que eu rodo uma aplicação gráfica Ubuntu no Windows 10?

Já adianto: é muito mais fácil do que você está imaginado!

Instalando o Bash on Ubuntu on Windows

Se você já instalou, pule esta parte.

Se não, é simples:

  1. Instale o Anniversary Update (se não chegou ainda para seu computador, você pode obtê-lo aqui)
  2. Acesse Configurações, Atualizações e Segurança 
  3. Clique em Para Desenvolvedores
  4. Selecione o Modo de desenvolvedor
  5. Abra o Painel de Controle, ProgramasAtivar ou Desativar Recursos do Windows
  6. Selecione o Susbsistema do Windows para Linux
  7. Reinicie o computador
  8. Execute o Bash no Ubuntu no Linux e permita a instalação do subsistema, definindo seu login e senha;

Só isso!

Preparando execução de aplicações graficas

Você só precisa três coisas:

  1. Instale e execute um servidor X para Windows: o VcXSrv funciona!
  2. Configure o display executando no Bash:
    echo "export DISPLAY=:0.0" >> ~/.bashrc
  3. Configure o DBUS editando o arquivo /etc/dbus-1/session.conf e substituindo a linha
<listen>unix:tmpdir=/tmp</listen>

por

<listen>tcp:host=127.0.0.1,port=10002</listen>

Pronto! Reinicie o bash e instale/execute aplicações gráficas normalmente!

Outros ajustes

Estes não são essenciais pra começar, mas resolvem pequenos problemas que encontrei:

  1. Adicione o nome da sua máquina Windows (Ex; MINHAMAQUINA) no /etc/hosts, na linha do localhost/127.0.0.1, para resolver o problema de “Não foi possível resolver máquina MINHAMAQUINA”) e lentidão ao abrir alguns aplicativos;
  2. Adicione a linha “export NO_AT_BRIDGE=1” no arquivo ~/.bashrc para resolver warnings de “Couldn’t connect to accessibility bus”

Questões em aberto que pretendo analisar

  1. Carregar a aplicação diretamente a partir de um atalho do Windows- oficialmente não é possível, mas…
  2. Montar um ambiente de desenvolvimento com Eclipse, Cmake, Gcc

Aplicações testadas

  • Firefox – OK sem restrições até o momento – sucesso inclusive ao utilizar certificados digitais
  • Eclipse Mars com Oracle JDK 7 (O Eclipse Neon não funciona por depender do Java 8, que tem alguma particularidade que faz com que não funcione): Está ocorrendo um erro. Há previsão de correção do problema no próximo update, quando ocorrer vou testar novamente.
Etiquetado , , ,

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: