Rodando programas para Windows no Linux, com o Wine Como rodar programas do Windows no Linux? Naturalmente seria impossível, pois são dois sistemas completamente diferentes e sem ligações. Os programas escritos para o Windows não rodam no Linux, e vice versa. Mas não é de hoje, um longo e promissor projeto vem caminhando aos poucos, cada vez evoluindo mais: o Wine. O nome quer dizer "Wine is not an emulator", um nome recursivo, muito usado em programas para Linux (assim como o próprio "Linux = Linux is not Unix"). A idéia do Wine é que ele não é um emulador, ou seja, ele não tenta simular o Windows completamente (com todos os recursos, interfaces, etc), e muito menos depende do Windows, mas ele tenta "ser" um Windows diante dos programas. Diferentemente do VMware, um emulador/virtualizador de PC (entre outros), o Wine é uma implementação livre da API do Windows. A API é um conjunto de funções pré-definidas nos sistemas e programas, no caso, do Windows. Traduzindo... O Wine cria um ambiente de certa forma transparente, tentando rodar os programas do Windows diretamente. Quando um programa do Windows é iniciado, ele chama algumas funções presentes em DLLs do Windows, e o Windows faz a coisa que o programa pediu. Por exemplo, um programa pede para desenhar uma janela na tela com uma frase dentro, então o Windows interpreta isso e desenha a janela com o texto dentro. O que o Wine faz é dar uma de Windows, rodando dentro do Linux, servindo como um "intérprete". O programa pede para o Wine (mas pensa que está pedindo para o Windows) para fazer alguma coisa, então o Wine converte estas instruções em instruções que o Linux possa entender. Na prática, você vê o programa como se ele rodasse diretamente, com uma leve perda de desempenho. Veja este screenshot, onde digito este texto no meu editor Mep Texto rodando no Linux, sendo que o Mep Texto é um software para Windows:
Dependendo do programa o desempenho pode ser muito ruim, especialmente programas que exigem uso intensivo de gráficos, modelagem, edição de vídeo e som, etc. Alguns programas, ele simplesmente não tem como rodar. Programas que usam acesso direto a disco ou dispositivos, e/ou alguns recursos específicos do Windows, sem chances. O Wine não é perfeito. É muito difícil fazer o que ele faz, na verdade é de se admirar que ele possa funcionar. As funções do Windows são adicionadas à mão, uma a uma, e olha que são muitas! Existem até bugs e diferenças entre algumas versões de Windows que são exploradas e usadas pelos programas, mas ainda assim o Wine consegue se dar muito bem. Estas funções são documentadas em parte pela Microsoft, produtora do Windows, para uso dos programadores que desenvolvem programas para o Windows - afianal, eles precisam conhecer a API e as funções disponíveis no Windows para poder fazer os programas. Por isso que uns programas só rodam em determinadas versões de Windows, muitas vezes eles requerem funções ou arquivos que não existem nos Windows mais antigos. Apesar disso, o funcionamento das funções é oculto e fechado, pois o Windows não é um software de código livre (open source). A galerinha do Wine tem o trabalho de "recriar" as funções usando recursos do Linux, e fazer as mesmas coisas que elas fariam no Windows. Uma função muitas vezes chama outra, que chama outra... É realmente interessante e magnífica a idéia do Wine, praticamente um subsistema Windows "open source". "Subsistema" porque ele depende do
Wine e do próprio Linux para funcionar, não é um sistema operacional completo diferentemente dos emuladores de computador, onde você roda uma instâncica do Windows "verdadeiro" numa máquina virtual, com todos os seus arquivos, funções, gerenciamento de hardware, etc. A página do projeto do Wine é: www.winehq.org Lá você encontra pacotes para algumas distribuições de Linux. É bom instalar os mais recentes, nunca as versões antigas. Depois de 2005, que finalmente o Wine passou para beta (depois de anos e mais anos em alpha!), ele tem ficado muito mais estável e melhor. Nas distribuições baseadas no Debian você pode instalá-lo via apt-get (cito isso porque estou usando agora o Kurumin): apt-get install libwine wine wine-utils Você pode baixar estes pacotes ".deb" também no hotsite do Explorando (na seção de downloads) e então instalá-los manualmente com o dpkg, digitando (como root) num prompt de comando: dpkg -i *.deb Isso supondo que você esteja na pasta onde só tenham estes 3 arquivos .deb, claro. Depois de instalado, a primeira coisa que você deve fazer é configurá-lo. Para isso abra o "Executar" ou digite num prompt de comando, com o seu login de usuário: winecfg Abre-se um programinha com várias abas ("guias"), e ele cria a pasta ".wine" (oculta) dentro do seu diretório Home. Abordando rapidamente, o que você precisa fazer no winecfg é: - Na primeira aba, "Applications", você deve definir o sistema que o Wine irá imitar (a versão de Windows). Boa parte dos programas rodam bem ao simular o Windows 98, mas alguns só instalam no Windows 2000 ou XP, então você pode voltar aqui e escolher o sistema desejado, antes de rodar o instalador. Veja:
- Na aba "Drives", clique em "Autodetect". Isso fará com que o Wine crie unidades de disco "virtuais", que são links para pastas específicas do seu sistema Linux. Assim você poderá acessar estas pastas nos programas Windows que rodar, como se fossem unidades ou mapeamentos de locais de rede:
- Particularmente recomendo desativar o som, na aba "Audio", para melhorar o desempenho. Abra a aba "Audio" e desmarque os itens. - Se você achar o visual do Wine feio (por padrão, lembra a cara do Windows 9x/NT4), então saiba que você pode usar os temas do Windows XP/2003. Na aba "Desktop Integration", clique em "Install theme..." e localize o arquivo de tema (".msstyles") do Windows. A seguir, escolha-o na listinha e clique em "Aplicar", e os efeitos passarão a ser visualizados na próxima vez que você abrir os programas. É bom copiar o tema para uma pasta que esteja sempre disponível durante o uso do Wine, por exemplo, sua própria pasta "home". Em diversos sites na Internet você encontra temas para Windows XP, prefira os zipados (não os executáveis). No hotsite do Explorando também há alguns temas para download. Feito isso, clique em "Aplicar" e em "OK". Pronto. Agora basta rodar os programas, chamando o Wine, seguido do nome do programa, como em: wine /mnt/hda1/programa.exe Com as interfaces gráficas fica mais fácil, por exemplo, no KDE. Clique com o botão direito num arquivo ".exe" e escolha "Abrir com". Digite "wine" no campo da linha de comando, e marque a opção para lembrar a associação. Assim você pode rodar os programas do Windows diretamente, dando um duplo clique sobre eles. Isso é necessário porque os programas precisarão ser executados pelo Wine, e não diretamente, pelo Linux. O Wine exibe algumas mensagens ao rodar os programas, normalmente você pode ignorá-las ou clicar para nunca mais exibi-las. Ele se isenta de responsabilidades, por exemplo, de que "todos os programas irão funcionar" e também sobre perda de dados. Use por sua conta e risco. Saiba que, por padrão, ele libera acesso com suporte a leitura e escrita na sua pasta "home" (normalmente vista como o drive "H:" nos programas para Windows). Portanto, não rode programas suspeitos; um vírus, por exemplo, poderia apagar seus arquivos. Uma idéia é criar uma conta de usuário só para o Wine, mas isso fica de fora desta dica, por envolver outros conhecimentos. Você pode rodar normalmente os programas que você roda no seu Windows. Se eles funcionarem, beleza; se não rodarem, paciência :( Tem gente que consegue rodar até mesmo o Office e o IE, eu não tentei isso, mas rodei normalmente vários programas. Ao rodar o "winecfg", o Wine cria uma pasta ".wine" (oculta) dentro da sua pasta "Home", onde guarda as configurações e o disco "virtual", uma pasta que será vista pelos programas como a
unidade "C:". Dentro dela você poderá encontrar uma falsa pasta " Arquivos de programas", "Windows", etc. Você pode copiar ou salvar arquivos nelas, normalmente :) As pastas do usuário do Windows (como Documentos, Desktop, etc) são guardadas na pasta "Profiles", dentro da falsa pasta "Windows", assim como era no Windows 9x/Me/NT. Dica: Se você alterar alguma configuração do Wine e ele não rodar mais, pode apagar a pasta ".wine" do seu "Home" (marque a opção de visualizar arquivos ocultos, no seu gerenciador de arquivos), e então rodar o "winecfg" novamente. Assim, as opções serão recriadas com os valores padrões. Tenha em mente que ao apagar esta pasta, todo o conteúdo da falsa unidade "C:" será apagado, veja se você não tem coisas importantes dentro da pasta "~\.wine\drive_c\Windows\profiles\usuario\Meus documentos", por exemplo. Obs. para iniciantes no Linux: "~" no caminho de pastas e arquivos, refere-se à sua pasta "home". Em vez de abrir a pasta "/home/mah", por exemplo, posso digitar apenas "~" e o sistema entenderá como a pasta "home" do usuário logado normalmente. IMPORTANTE: Muitos programas só rodam se o DCOM estiver instalado. Ele é uma atualização para o Windows 98. Você pode procurar na seção de downloads do site da Microsoft (www.microsoft.com) ou na Internet (para usuários do Kurumin, ele vem com o Kokar). Procure pelo DCOM98. Antes de instalá-lo, não se esqueça de rodar o "winecfg" e pedir para simular o Windows 98, senão o instalador não permitirá concluir a instalação. Depois você pode voltar lá e deixar o Windows de sua preferência. Saiba que... Dependendo da versão (quanto mais recente, melhor) e do seu ambiente gráfico, o Wine cria atalhos para os programas instalados, no menu "Iniciar" do seu sistema. Isso mostra mais ainda a evolução dele, a que ponto chegou! É isso... Dúvidas e problemas, poste na comunidade do Explorando (fórum), ou procure net afora... Mas que é interessante o projeto do Wine, é sim ;) Dica ++ Veja um tutorial meu publicado no Guia do Hardware, sobre o Wine. É um tutorial maior, que mostra a instalação, configuração e traz várias dicas: www.guiadohardware.net/tutoriais/dicas-wine/