Anda di halaman 1dari 7

TUTORIAL | Ambiente Wine para aplicativos Windows

TUTORIAL

Como construir um ambiente Wine para aplicativos Windows

Vintage verstil
Graas ao Wine, cada vez mais aplicativos Windows so executados no Linux. Se investirmos um pouco de tempo em congurao e soluo de problemas, no caremos presos ao Windows, mesmo com aplicativos que ningum nunca sonhou executar no Linux. por Harald Jele

lm da fcil substituio de grandes pacotes de escritrio e pacotes grficos, o mercado agita-se com os incontveis (e normalmente menores) programas que atendem s necessidades de nichos de pequenas e mdias empresas. Geralmente, empresas ou rgos pblicos criam sua prpria personalizao para aplicativos de misso crtica. As bibliotecas do famoso sistema Wine [1] fornecem um meio de executar aplicativos Windows dentro do Linux. Atualmente, a verso 1.4 a mais estvel, mas a verso em desenvolvimento 1.5.6 tambm est disponvel. O modo de configurao do Wine mudou completamente no decurso dos anos. Embora j tenha sido considerado complicado, tornou-se significativamente mais fcil e simples, e lida com muitos detalhes irritantes que anteriormente eram deixados para o administrador. Esses detalhes incluem a integrao de

dispositivos removveis, como DVDs, ou ainda o sistema de impresso CUPS. Uma mudana igualmente significativa na arquitetura do Wine foi a introduo de prefixos (desde 2003, tambm conhecidos como frascos). Configurar um prefixo significa que possvel instalar e operar o aplicativo Windows dentro de um contexto predefinido sem entrar em conflito com outro aplicativo. Um projeto recente do Instituto Robert Musil da Universidade de Klagenfurt fornece um interessante estudo de caso do Wine no mundo real. O Instituto produziu recentemente uma nova edio das obras do autor austraco Robert Musil (gura 1). A verso eletrnica desta nova edio baseada no aplicativo Folio Views, que s pode ser executado em Windows. Usamos o Wine para criar uma verso que pode facilmente iniciar a partir do Linux (quadro 1).

Decantar e instalar
O Wine rapidamente instalado em qualquer distribuio popular, e o repositrio do Ubuntu mostra ser particularmente amigvel. Configurar o metapacote wine com o gerenciador de pacotes apt leva em conta as bibliotecas necessrias e aplicativos essenciais e tambm fornece as ferramentas de configurao necessrias, integrando o Gecko para renderizar visualizaes HTML e fontes usadas com frequncia no ambiente Windows. Para obter uma lista de verses disponveis, pesquise usando apt-cache search wine ou aptitude search wine (listagem 1).

Como criar um prexo


Um prefixo cria um ambiente virtual com configuraes personalizadas para a execuo de um aplicativo do Windows no Wine. O Wine sempre

68

www.linuxmagazine.com.br

Ambiente Wine para aplicativos Windows | TUTORIAL

Figura 2 A verso digital de todas as obras de Klagenfurt do escritor Robert


Musil, publicada pela Universidade de Klagenfurt, com o Folio Views, Wine, Linux e VirtualBox.

Figura 1 Um retrato-grate de
Robert Musil Musilhaus em Klagenfurt.

cria um prefixo se este for necessrio mas no estiver disponvel. No entanto, o administrador pode e deve criar explicitamente um prefixo com antecedncia. O Wineboot usa o comando:
env WINEPREFIX=~/nome_do_prefixo wineboot u

para definir o prefixo do Wine chamado nome_do_prefixo como a estrutura de diretrios no diretrio pessoal do usurio. Criar um prefixo torna as experincias relativamente mais seguras, sem que o usurio corra o risco de estragar a instalao do aplicativo inteiro com uma ao simples. O uso cuidadoso de um prefixo realmente torna as temidas batalhas de instalao da morte do sistema Windows em coisas do passado. Alm disso, a utilizao paralela de

aplicativos que iriam, nativamente, entrar em conflito com o Windows no mesmo computador, agora possibilita que cada programa tenha seu local exclusivo no sistema. Uma vez que um prefixo devidamente criado e configurado, pode-se facilmente copi-lo para um novo diretrio pessoal quando for transferido para um computador diferente e isso tambm funciona nas operaes multiusurios. O administrador s tem que manter a es-

Listagem 1: Pacotes do Wine no Ubuntu 11.10


01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 Playonlinux 01 - Frontend for wine 02 Wine1.2-gecko - Microsoft Windows compatibility layer (web browser) 03 Wine1.2-gecko - Microsoft Windows compatibility layer (web browser) : 05 q4wine - Qt4 GUI for wine (W.I.N.E) 06 Wine - Microsoft Windows Compatibility Layer (Meta Package) 07 Wine1.2 Microsoft Windows Compatibility Layer (Binary Emulator and Library) 08 Wine1.2-dbg - Microsoft Windows Compatibility Layer (debugging symbols) 09 wine1.2-dev - Microsoft Windows Compatibility Layer (Development files) : 11 winetricks - Microsoft Windows Compatibility Layer (winetricks) 12 gnome-exe-thumbnailer - Wine .exe and other executable thumbnailer for Gnome 13:separate wine settings 14 Wine1.3 - Microsoft Windows compatibility layer (Binary Emulator and Library) 15 wine1.3-dbg - Microsoft Windows Compatibility Layer (debugging symbols) 16 wine1.3-dev - Microsoft Windows Compatibility Layer (Development files) :

Linux Magazine #94 | Setembro de 2012

69

TUTORIAL | Ambiente Wine para aplicativos Windows

trutura dos arquivos e diretrios ou, mais corretamente, criar uma nova estrutura. A melhor abordagem a de usar o comando:
tar cfzv nome_do_prefixo.tgz nome_do_prefixo

para preparar o diretrio com o prefixo a ser movido. Em seguida, execute tar xfzv para descompact-lo no diretrio pessoal do usurio desejado. Caso um usurio no crie seu prprio prefixo, ou se esquea de apontar para um prefixo quando iniciar um programa, os resultados de todas as atividades sero colocados no subdiretrio .wine do diretrio pessoal do usurio (~/.wine), que ter de viver sem os benefcios do prefixo.

Figura 3 O Wine Explorer perfeito para testar uma nova instalao.

Reincio simulado
O Wineboot basicamente executa as mesmas aes que um sistema Windows executaria. A gama completa de opes do Wineboot descrita no site do projeto Wine [2]. A estrutura de diretrio gerada pelo Wineboot oferece um ambiente de trabalho que o administrador pode examinar mais de perto com as ferramentas padro do Wine. O comando:
env WINEPREFIX=~/nome_do_prefixo wine C:\\windows\\explorer.exe

revela o que uma estrutura de diretrio essencialmente autoexplicativa: ~/nome_do_prefixo/drive_c/; mapeia o disco rgido inicializado de uma tpica instalao do Windows; ~/nome_do_prefixo/dosdrives e lista as unidades criadas, juntamente com suas atribuies de letra de unidade.

Regedit
Os usurios executam a ferramenta Wine Regedit (gura 4) com o seguinte comando:
env WINEPREFIX=~/nome_do_prefixo wine C:\\windows\\regedit.exe

a tentao seja grande, os especialistas em Shell devem ficar longe desses arquivos e usar o Regedit. A wiki do Wine fornece uma viso prtica das opes de inicializao do Regedit [4]. A partir de agora, o centro nervoso de qualquer configurao adicional do prefixo a ferramenta grfica do Wine, chamada winecfg, que os usurios podem iniciar com:
env WINEPREFIX= ~/nome_do_prefixo winecfg

executa o Explorer do Wine e apresenta a viso do servidor Wine nos sistemas de arquivos montados, juntamente com os arquivos que contm (gura 3). O Wine Explorer oferece ao administrador uma opo para verificar se os sistemas de arquivos esto montados da maneira desejada quando criar ou atualizar o prefixo Wine atual ou seja, ao especificar a letra de unidade correta do mundo Windows. Sem a interveno do administrador, o Wine mostra apenas as unidades de CD-ROM e DVD, se estas estiverem montadas no sistema Linux. A explorao paralela do diretrio do prefixo com ferramentas Linux

que edita o registro do prefixo especfico do sistema. A ferramenta armazena os valores que foram inspecionados ou valores que foram editados em trs arquivos abaixo de ~/nome_do_prefixo/: system.reg, user.reg e userdef.reg. Mesmo que

Por um lado, esta ferramenta grfica fornece uma abordagem conveniente para a configurao do comportamento do Wine; por outro, tambm executa ou instala aplicativos. Mas, se o usurio desejar obter controle total sobre o processo de instalao, no haver alternativa aos programas de linha de comando.

Figura 4 O Wine vem com seu prprio editor de registro.

70

www.linuxmagazine.com.br

Ambiente Wine para aplicativos Windows | TUTORIAL

Figura 5 A lista de resultados do TrackWinstall mostra todas as alteraes encontradas em uma instalao do Windows.

Uma questo de gosto: nativo ou embutido


A instalao do Wine coloca um nmero considervel de bibliotecas (DLLs) na mquina de destino. A maioria destas bibliotecas foi feita atravs de reengenharia pelos desenvolvedores do Wine que, muitas vezes, eliminam a necessidade de se possuir uma licena do Windows. Como essas DLLs cobrem muitas chamadas de sistema, muitos aplicativos funcionaro sem muita assistncia. Se algo falhar, til verificar o aplicativo winecfg na guia Bibliotecas, que permite que se altere a ordem em que o Wine carrega bibliotecas do Windows. Espere ter dor de cabea depois de uma instalao do Wine caso as

bibliotecas fornecidas no realizem funes essenciais para um aplicativo especfico. Neste caso, necessrio integrar e usar as DLLs nativas fornecidas pela instalao do Microsoft Windows em vez das DLLs que vm com o Wine. A ferramenta winecfg na guia Bibliotecas permite que sejam especificadas as bibliotecas nativas da Microsoft. Aqui, preciso usar a DLL da Microsoft chamada cfgmgr32, que o administrador ter que buscar a partir de uma instncia do Windows e inserir no local correto na estrutura de diretrios do Wine. Isto significa que o arquivo que no Windows est em
c:\windows\system32\cfgallmgr32.dll

Coexistncia aconchegante
Esta mudana deixa a entrada abaixo no arquivo user.reg e uma entrada correspondente no registro:
[Software\\Wine\\DllOverrides] 1320056438 "cfgmgr32"="native,builtin"

ser encontrado no seguinte prefixo do Wine: ~/nome_do_prefixo/drive_c/ windows/system32.

permitindo ao Wine emular o comportamento que a Microsoft introduziu no Windows XP, conhecido como side-by-side ou SxS [5]. O diretrio c:\windows\WinSxS contm vrias verses da mesma biblioteca de sistema side-by-side, discriminadas por subdiretrios. Aplicativos do Windows podem solicitar claramente verses especificadas do sistema.

Figura 6 O recurso Process Info lista as DLLs ligadas a um executvel Windows.

Linux Magazine #94 | Setembro de 2012

71

TUTORIAL | Ambiente Wine para aplicativos Windows

Iniciando aplicativos
Use o comando abaixo para iniciar o tpico programa de instalao Windows de um aplicativo personalizado ou um jogo atravs de uma unidade de DVD mapeada na letra de unidade D na linha de comando:
env WINEPREFIX=~/nome_do_prefixo wine D:\\Setup.exe

O Wine tambm oferece outros mecanismos para iniciar programas. A sintaxe oficial, de acordo com a wiki do Wine, :
Figura 7 Executar um aplicativo Wine com o conjunto varivel de ambiente
WINEDEBUG=+relay gera um enorme volume de sada. env WINEPREFIX=~/nome_do_prefixo wine start 'D:\Setup.exe'

Rotinas de instalao muitas vezes fazem uso dessa capacidade. Se uma instalao do aplicativo falhar e nenhuma informao especial estiver disponvel com as razes da falha, substituir este diretrio pelo diretrio equivalente de uma instalao do Windows pode ser til, pelo menos durante a instalao. No entanto, recomenda-se cautela especial: as bibliotecas do sistema so rapidamente substitudas, diretrios inteiros e ferramentas so rapidamente

modificados, e ferramentas como o Winetricks [6] despejam uma infinidade de arquivos gratuitos da Microsoft no ambiente Wine. Esse comportamento nem sempre compreensvel, portanto, os desenvolvedores do Wine muitas vezes avisam aos usurios: se esperamos ajuda da comunidade, devemos nos abster de reforar a instalao com DLLs demais [7]. Instalar um aplicativo do Windows algo que os usurios devem resolver sem profunda manipulao do sistema.

Ou podemos usar a conveno Unix para o nome do caminho:


env WINEPREFIX=~/nome_do_prefixo start /Unix /media/Setup.exe

A segunda variante recomendada, especialmente se a rotina de instalao ou o programa no implementar corretamente caminhos individuais [8]. Se o programa de instalao for concludo sem cancelamento, as chances de a instalao ter funcionado so boas. Neste caso, o Wine opera exatamente como o Windows: se a instalao chama por uma entrada na rea de trabalho com um cone (vnculo) o Wine oferece isso e uma entrada aparece no menu rea de Trabalho do Linux para o Wine, os programas instalados esto localizados abaixo deste menu.

Como obter informao


Se a instalao falhar ou se o aplicativo do Windows no iniciar, as opes a seguir so tcnicas de resoluo de problemas de preferncia consultadas antes de se comear o teste inicial: Verifique se o aplicativo est inserido no banco de dados de compatibilidade criado pelos desenvolvedores comerciais do Wine, o CodeWeavers [9].

Figura 8 Comandos suportados pelo Wine Debugger.

72

www.linuxmagazine.com.br

Ambiente Wine para aplicativos Windows | TUTORIAL

Procure uma resposta na Internet. Muitas tentativas sucessos e fracassos esto documentadas online, porm no registradas no CodeWeavers. Instale o programa em uma instncia nativa do Windows para fins de comparao. Use o Wine Debugger especial [10]. Trabalhar com uma instncia paralela do Windows requer alguma preparao, pois o objetivo capturar os detalhes do processo de instalao e a forma como o aplicativo chamado. A ferramenta escolhida deve efetuar a instalao, informando quais diretrios, arquivos e entradas de registro so criados pela rotina de instalao, e quais bibliotecas so acrescentadas ao sistema. Mesmo que ser possvel conseguir isso com um mnimo de trabalho manual, aplicativos livres, como o TrackWinstall (gura 5) [11] oferecem o mesmo servio e alguma convenincia. O ideal ter uma ferramenta que, depois de monitorar um processo de instalao, crie os diretrios e arquivos, as novas entradas do registro e as bibliotecas relevantes do sistema; tambm deve permitir que sejam facilmente exportados para um ambiente convencional do Wine. Se, em seguida, evitarmos a reinstalao, poderemos iniciar o aplicativo atravs dos comandos ou cones descritos anteriormente. Se esta abordagem falhar, uma inspeo mais aprofundada da atividade do aplicativo na instalao paralela do Windows ser ento necessria. O primeiro passo iniciar o aplicativo e verificar as bibliotecas do sistema que ele carrega quando iniciado. Ferramentas simples so boas para essa tarefa, e muitas delas esto disponveis gratuitamente ou como verses de demonstrao para uso gratuito limitado. O DLL Show [12] j um veterano, mas ainda oferece um bom servio e de modo confivel revela aplica-

tivos e bibliotecas associadas carregadas no espao de memria do sistema operacional. Um servio semelhante fornecido pelo Process Info [13], que gratuito por 30 dias (gura 6). As limitaes desta verso temporria em comparao com a verso completa so irrelevantes para a maioria dos usurios Linux, principalmente porque a ferramenta pode ser instalada e executada em um ambiente Wine. Com base na lista de bibliotecas monitoradas que so carregadas pelo aplicativo, os administradores podem obter uma impresso inicial na qual se deve prestar ateno. A sada no console de execuo j pode revelar se uma biblioteca do Wine falha em oferecer a um aplicativo todas as funes relevantes e, portanto, tem de ser substituda por uma verso nativa. Em qualquer caso, carregar o Debugger Wine ao iniciar o aplicativo deve ajudar.

Para acessar as informaes de depurao facilmente, passe a varivel de ambiente WINEDEBUG na hora da inicializao. O valor +relay no modo de depurao do Wine mostra no console todas as chamadas de funo e descries das bibliotecas associadas. Isto d ao administrador algumas informaes iniciais quanto chamada de funo que est causando a falha no Wine e qual DLL responsvel por ela. Se redirecionarmos a sada-padro para um arquivo de log, poderemos ento analisar o processo de inicializao em seu prprio tempo hbil:
env WINEPREFIX=~/nome_do_prefixo WINEDEBUG=+relay wine aplicativo.ex&&Egt;debug.log

O parmetro +all para a varivel ambiente WINEDEBUG (gura 7) faz com que o depurador fique mais falante:
env WINEPREFIX=~/nome_do_prefixo WINEDEBUG=+relay wine aplicativo.exe & > inicializacao_aplicativo.log

Cuve
Um cenrio que os administradores do Windows chamam de Inferno de DLLs demonstra que substituir continuamente bibliotecas uma abordagem com limitaes nem todas as verses das bibliotecas do sistema iro cooperar bem. Quando chegar a este ponto, qualquer ao que se tome requer pesquisa, habilidade, sorte e, por ltimo, mas no menos importante, pacincia.

O Wine, em seguida, encaminha todas as informaes acessveis no modo de depurao para a sada-padro. Isso retarda significativamente o incio do aplicativo, mas uma vez que se ganha um pouco de prtica, esta abordagem pode oferecer uma impresso muito mais profunda dos mecanismos implementados e as armadilhas que podemos tentar contornar.

Quadro 1: Robert Musil em Klagenfurt


A edio de Klagenfurt das obras de Robert Musil foi lanada em 2009 como uma edio eletrnica em DVD o projeto usa o Folio Views, um aplicativo do Windows (gura 2). Para ampliar o grupo de usurios potenciais, o instituto decidiu oferecer a segunda edio, que ser publicada em 2013 com grandes acrscimos ao contedo e correes, no Linux, com o Wine, e uma instalao pr-construda no VirtualBox [16]. Em particular, os participantes do projeto tm como objetivo atingir os usurios que preferem o Linux e o Mac OS X. Alm disso, a congurao oferece suporte integrao simples em uma rede local, sem a necessidade de investimento em programas adicionais.

Linux Magazine #94 | Setembro de 2012

73

TUTORIAL | Ambiente Wine para aplicativos Windows

Alm de definir a varivel de ambiente WINEDEBUG, tambm possvel lanar diretamente um aplicativo com o depurador embutido do Wine:
env WINEPREFIX=~/nome_do_prefixo winedbg aplicativo.exe

Wine [10] contm uma boa viso geral da abordagem sistemtica de um problema desconhecido que ocorre ao tentar-se executar um aplicativo do Windows em um ambiente Wine.

O depurador do Wine oferece aos testadores experientes os recursos de depurao familiares que vm com as bibliotecas de ambiente Wine do sistema. Administradores, portanto, tm uma vasta gama de mtodos para inicializar aplicativos de uma maneira controlada. As semelhanas com outros depuradores no coincidncia; os comandos implementados pelo depurador do Wine (figura 8) so um subconjunto do Projeto GNU Debugger (GDB). O site do desenvolvedor sobre a depurao do

CodeWeavers: os mestres vinicultores


Se toda essa depurao e testes no ajudarem a executar um aplicativo no Linux e no Wine, ainda existem outras opes. Com o lema carinhas tentando mudar o mundo da computao para outros carinhas, a CodeWeavers [14] impulsiona a integrao de aplicativos Windows no Wine. Embora os produtos CrossOver e CrossOver Games sejam comerciais e fechados, ajudam a guiar muitos usurios principalmente

Mais informaes
[1] Quartel General do Wine: http://wiki.winehq.org/ [2] Descrio do Wineboot: http://wiki.winehq.org/wineboot/ [3] Wine DIB engine: http://wiki.winehq.org/DIBEngine/ [4] Descrio do Regedit: http://wiki.winehq.org/regedit/ [5] Descrio da Microsoft sobre os conjuntos lado a lado (SxS): http://msdn.microsoft.com/en-us/library/aa376307.aspx [6] Winetricks: http://www.winetricks.org [7] Detalhes sobre winetricks na wiki do Wine: http:// wiki.winehq.org/winetricks/ [8] Opes de linha de comando do Wine: http://wiki.winehq. org/FAQ#head-3b297df7a5411abe2b8d37fead01a2b8edc21619 [9] Centro de Compatibilidade do CodeWeavers Crossover (CCCC): http://www.codeweavers.com/compatibility/ [10] How-to do Wine debugger: http://www.winehq. org/docs/winedev-guide/wine-debugger/ [11] TrackWinstall: ftp://ftp.heise.de/pub/ct/ ctsi/trackwinstall_111.zip [12] DLL Show: http://www.gregorybraun.com/DLLShow.html [13] Process Info: http://www.jobe-software.de/en/index_en.htm [14] CodeWeavers: http://www.codeweavers.com/ [15] PlayOnLinux: http://www.playonlinux.com/ [16] Jele, H. Robert Musil und das Matroschka-Prinzip: http:// wwwu.uni-klu.ac.at/hjele/publikationen/container_ ka_2013/20111114_matroschka_rmi.pdf (em alemo)

gamers no processo de fazer com que aplicativos da Microsoft executem no Linux. Veja o artigo sobre CrossOver que aparece em outro local nesta edio. Tambm til, com a vantagem de ser livre e de cdigo aberto, o projeto PlayOnLinux (POL) [15], que est includo na maioria das distribuies e vem com sua prpria interface grfica para o Wine. A longa lista de softwares suportados inclui jogos e programas como o AutoCAD, CATIA, Microsoft Office, iTunes, Google SketchUp e Adobe Photoshop e Dreamweaver. Se o aplicativo no qual estamos interessados no estiver listado na interface do PlayOnLinux, procurar por um arquivo .POL no repositrio online pode ser til. Alis, o PlayOnLinux tambm usa prefixos do Wine, o que pode evitar interao indesejada com outros jogos e programas.

Janelas para novos mundos


Combinaes como o Wine, o Linux e o VirtualBox permitem uma soluo open source completa e independente de plataforma, soluo esta que permite comportar aplicativos no-Linux em um recipiente para serem guardados permanentemente. Os modelos que contm tudo que necessrio para as operaes podem facilmente ser executados, movidos ou simplesmente instalados atravs de cpia. E se isso no for suficiente, podemos redirecionar a sada das instncias virtuais usando protocolos como o VNC, RDP ou NX, oferecendo recursos multiusurios e de rede a antigos aplicativos do Windows.

Gostou do artigo? go?


Queremos ouvir sua opinio. pinio. Fale conosco em cartas@linuxmagazine.com.br ne.com. Este artigo no nosso sso site: s http://lnm.com.br/article/7408 /artic 408

74

www.linuxmagazine.com.br

Anda mungkin juga menyukai