Pular para o conteúdo principal

Programas no wine para todos os usuários

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.

Comentários

Postagens mais visitadas deste blog

Referências Bibliográficas com ABNTeX e JabRef

É inevitável escrever textos técnicos e científicos sem referências bibliográficas. Quando escrevemos em LaTeX a maneira mais conveniente de trabalhar com referências é a criação de bancos de dados bibliográficos que são incorporados ao documento final com o utilitário BibTeX . Estes bancos de dados são arquivos texto que obedecem uma formatação e possuem extensão "bib" . Para facilitar o nosso trabalho e não termos que nos preocupar com a formatação do arquivo podem ser utilizadas ferramentas específicas para trabalhar com arquivos BibTeX. Nesta postagem vamos explicar como trabalhar com o JabRef , um excelente software livre multiplataforma para lidar com arquivos BibTeX para documentos que usam a classe abnTeX  (Classes LaTeX para as normas ABNT). Antes de criarmos um arquivo e incluir qualquer referência vamos verificar algumas configurações importantes. A primeira delas é definir a codificação padrão para os arquivos através do menu "Options / Preferences" ....

Instalando o ZEOSDBO no Lazarus via Global Links

Neste tutorial iremos demonstrar como instalar os componentes ZEOSDBO para conexão com banco de dados da IDE Lazarus . Utilizaremos o Lazarus 0.9.26.2-2, o ZEOSDBO 6.6.5 e Debian Lenny 5.0.2. O ZEOZDBO deve ser descompactado em um diretório e que por sua vez eve ser copiado para /usr/lib/lazarus/components/ZEOZDBO-6.6.5 . Agora criaremos os global links que são arquivos texto que referenciam os pacotes (veja mais detalhes nesta postagem ) Crie os seguintes arquivos de no diretório /usr/lib/lazarus/packager/globallinks : zcomponent-6.6.5.lpl contendo "$(LazarusDir)/components/ZEOSDBO-6.6.5/packages/lazarus/zcomponent.lpk" zcore-6.6.5.lpl contendo "$(LazarusDir)/components/ZEOSDBO-6.6.5/packages/lazarus/zcore.lpk" zdbc-6.6.5.lpl contendo "$(LazarusDir)/components/ZEOSDBO-6.6.5/packages/lazarus/zdbc.lpk" zparsesql-6.6.5.lpl contendo "$(LazarusDir)/components/ZEOSDBO-6.6.5/packages/lazarus/zparsesql.lpk" zplain-6.6.5.lpl contendo ...

Cross-compile com Lazarus no Linux de maneira fácil

Este artigo descreve como realizar cross-compile de aplicações windows sobre a plataforma Linux de uma maneira mais simples. Introdução O Lazarus é um ambiente de desenvolvimento gráfico multi-plataforma que utiliza o compilador Free Pascal. Com ele é possível desenvolver aplicações de maneira muito semelhante ao Delphi. Na documentação wiki do Lazarus existe uma descrição (em inglês) de como realizar cross-compile de aplicações windows sobre a plataforma Linux. Porém, o principal objetivo deste artigo é descrever esta tarefa de uma maneira mais simples. Instalação Neste artigo serão utilizados Kurumin 6.1, Lazarus 0.9.20 e Freepascal 2.0.4, como será usado Kurumin ( que é um descendente do debian) baixei os pacotes para .deb no SourceForge , são eles: fpc-crosswin32_2.0.4-060919_i386.deb fp-compiler_2.0.4-1_i386.deb fpc-src_2.0.4-1_i386.deb fp-ide_2.0.4-1_i386.deb fp-units-base_2.0.4-1_i386.deb fp-units-db_2.0.4-1_i386.deb fp-units-fcl_2.0.4-1_i386.deb fp-units-fv_2.0.4-1_...