Existem alguns programas que os desenvolvedores teimam em não portar para o linux, para a maioria destes programas o Wine resolve o problema. Todavia a utilização do wine para programas grandes implica em outro inconveniente, o programa deve ser instalado para cada usuário da máquina o que gera uma enorme duplicidade de arquivos.
Muitos podem imaginar em contornar este problema com configurado diretiva WINEPREFIX de todos os usuários para um mesmo local, mas o wine só permite usar o WINEPREFIX para um diretório pertecente ao usuário corrente. Ou seja, se atribuimos o WINEPREFIX para /opt/programa (com o comando export WINEPREFIX="/opt/programa") e o usuário que vai executar o wine não é dono de /opt/programa o wine não executa.
A solução é criar um diretório X para o wine (com o comando wineprefixcrete --prefix X) , setar o WINEPREFIX para este diretório X e instalar o programa. Depois damos permissão de leitura para todos os usuário sobre este diretório X. Feito isto criamos um diretório Y para cada usuário corrente e criamos links para os subdiretórios de X. Atribuimos o WINEPREFIX para o diretório Y de cada usuário e desta forma o wine funcionará.
Vamos a um exemplo:
1) Instalação do programa
$ wineprefixcreate /tmp/dircompartilhado
$ export WINEPREFIX="/tmp/dircompartilhado"
$ wine /onde/esta/oprograma/instala.exe
$ sudo mv /tmp/dircompartilhado /opt
$ sudo chown root.root -R /opt/dircompartilhado
$ sudo chmod a+r -R /opt/dircompartilhado
2) Script para execução do programar por todos os usuários
#!/bin/bash
export WINEPREFIX=$(mktemp -d)
cd $WINEPREFIX
ln -s /opt/dircompartilhado/dosdevices
ln -s /opt/dircompartilhado/drive_c
ln -s /opt/dircompartilhado/system.reg
ln -s /opt/dircompartilhado/userdef.reg
ln -s /opt/dircompartilhado/user.reg
wine "C:\Arquivos de Programas\Instalado\programa.exe"
Obs.: Se o programa necessitar de escrever em algum arquivo dentro do WINEPREFIX ocorrerá erros pois os arquivos estão com permissão de somente leitura. Nestes casos é interessante estudar quais arquivos são gravados e dar permissão de escrita para os mesmos.
Muitos podem imaginar em contornar este problema com configurado diretiva WINEPREFIX de todos os usuários para um mesmo local, mas o wine só permite usar o WINEPREFIX para um diretório pertecente ao usuário corrente. Ou seja, se atribuimos o WINEPREFIX para /opt/programa (com o comando export WINEPREFIX="/opt/programa") e o usuário que vai executar o wine não é dono de /opt/programa o wine não executa.
A solução é criar um diretório X para o wine (com o comando wineprefixcrete --prefix X) , setar o WINEPREFIX para este diretório X e instalar o programa. Depois damos permissão de leitura para todos os usuário sobre este diretório X. Feito isto criamos um diretório Y para cada usuário corrente e criamos links para os subdiretórios de X. Atribuimos o WINEPREFIX para o diretório Y de cada usuário e desta forma o wine funcionará.
Vamos a um exemplo:
1) Instalação do programa
$ wineprefixcreate /tmp/dircompartilhado
$ export WINEPREFIX="/tmp/dircompartilhado"
$ wine /onde/esta/oprograma/instala.exe
$ sudo mv /tmp/dircompartilhado /opt
$ sudo chown root.root -R /opt/dircompartilhado
$ sudo chmod a+r -R /opt/dircompartilhado
2) Script para execução do programar por todos os usuários
#!/bin/bash
export WINEPREFIX=$(mktemp -d)
cd $WINEPREFIX
ln -s /opt/dircompartilhado/dosdevices
ln -s /opt/dircompartilhado/drive_c
ln -s /opt/dircompartilhado/system.reg
ln -s /opt/dircompartilhado/userdef.reg
ln -s /opt/dircompartilhado/user.reg
wine "C:\Arquivos de Programas\Instalado\programa.exe"
Obs.: Se o programa necessitar de escrever em algum arquivo dentro do WINEPREFIX ocorrerá erros pois os arquivos estão com permissão de somente leitura. Nestes casos é interessante estudar quais arquivos são gravados e dar permissão de escrita para os mesmos.
Comentários