SeamlessRDP - Executando aplicações Windows

Este artigo é para quem procura uma forma de executar no Linux, aplicações que são compatíveis somente com o Windows.
Através de uma conexão SeamlessRDP, os aplicativos serão executados de forma transparente, comportando-se como aplicações
locais do Linux.

[ Hits: 20.331 ]

Por: Fabio Soares Schmidt em 28/02/2012


Introdução e Compilação



Introdução

Certamente quem trabalha com Linux, em algum momento, esbarrou em alguma aplicação que é compatível somente com o Windows, ou até mesmo aplicações Web que são apenas compatíveis com seu navegador Internet Explorer.

Este artigo tem como objetivo, possibilitar que aplicações para Windows sejam executadas no Linux como se fossem aplicações locais, isto é, de forma transparente ao usuário. Aplicações Windows são apresentadas como qualquer aplicativo que está sendo executado no Linux.

Para isso, será utilizada uma conexão RDP 'seamless', que executará as aplicações no Windows apresentando-as no sistema Linux fazendo com que seja visualizada somente a janela da aplicação executada.

Esta configuração pode ser feita através de uma máquina virtual Windows no próprio sistema, ou com um servidor através do Terminal Services.

Compilando o RDESKTOP

Primeiramente, para que o rdestkop suporte o compartilhamento de sessões, que possibilitará a execução de diversas aplicações, ou várias instâncias da mesma, simultaneamente, é necessário aplicar o Patch disponibilizado pela Cendio.

Vamos utilizar os links disponibilizados pela Fontis em: http://www.fontis.com.au/rdesktop

Código fonte do rdestkop: http://www.fontis.com.au/system/files/rdesktop_src.tar.gz
Patch para SeamlessRDP: http://www.fontis.com.au/system/files/rdesktop.patch

Efetuado o download dos arquivos acima, descompacte o arquivo com os fontes do rdesktop:

tar zxf rdesktop_src.tar.gz

Aplique o Patch:

patch -p1 < rdesktop.patch

Agora iremos compilar o rdesktop:

# ./bootstrap
# ./configure
# make


Após compilado, copie o executável do rdesktop para o caminho desejado (neste tutorial, utilizaremos o caminho “/usr/local/bin/rdesktop”).

Se ao compilar o rdesktop, for apresentado o erro:
suspicious cache-id, must contain _cv_ to be cached

... Por favor, siga as orientações na dica: suspicious cache-id, must contain _cv_ to be cached ao compilar o rdesktop
    Próxima página

Páginas do artigo
   1. Introdução e Compilação
   2. Executando aplicações Windows
Outros artigos deste autor

Controle de acesso à internet com Squid

Instalação do Oracle 10g R2 no SUSE Linux Enterprise Server 11

Implementação de NIDS com EasyIDS

Criando VPN site-to-site, conectando diversas filiais a matriz com openVPN

Leitura recomendada

Mantendo seus dados em segurança com o EncFS

Processos no Linux

Dropbox - Integração em multiplataformas

DHCP no GNU/Linux - Guia para ISC-DHCP Server

Implementando Wake Up on Lan (WoL) no Linux

  
Comentários
[1] Comentário enviado por leo.silva em 29/02/2012 - 11:57h

quando executo o comando ./bootstrap apresenta o seguinte erro:
./bootstrap: 3: autoreconf: not found

como posso soluciona-lo?

[2] Comentário enviado por fs.schmidt em 29/02/2012 - 12:42h

Olá amigo, é necessário instalar o pacote autoconf.

[3] Comentário enviado por leo.silva em 29/02/2012 - 13:12h

Valeu amigão, agora funcionou!

[4] Comentário enviado por edulanzani em 29/02/2012 - 17:56h

Não econtrei o executavel do rdesktop.

[5] Comentário enviado por brunovictor86 em 02/03/2012 - 11:05h

Fabio, otimo artigo, vai me ajudar muito.

Estou com o seguinte problema, não consigo abrir mais de uma sessão aparece o seguinte erro.

line 33: syntax error near unexpected token `newline'
line 33: `</aplicativo>'

Apaguei essa ultima linha `</aplicativo>' e tambem nao abre.

[6] Comentário enviado por brunovictor86 em 02/03/2012 - 12:28h

Fabio, tem como ter duas instancia de um programa abreto com o mesmo usuario de ts?

[7] Comentário enviado por edulanzani em 02/03/2012 - 14:37h

Para abrir duas instancias de um mesmo usuario, vc deve configurar no servidor de ts pra ele aceitar multiplas conexes do mesmo usuario.

[8] Comentário enviado por Tacioandrade em 02/03/2012 - 14:50h

Fábio esta é uma ótima dica mesmo, porem tendo um problema. Fiz o passo a passo todo correto, consegui compilar o rdesktop depois de aplicar o patch, tudo OK, descompactei o arquivo seamlessrdp_server.zip como nas sua explicação e tudo OK.

Porem quando fui para o Linux tentar executar o script (já com os dados modificados), está aparecendo a seguinte mensagem de erro: Error binding to socket: bind: Permissão negada.

Você sabe o que pode ser isso?????

Outra duvida que tenho, desta forma do tutorial. poderei abrir a aplicação apenas de 1 computador por vez no Windows XP ou 7 normal, ou poderei abrir várias instâncias em várias maquinas, como se estivesse usando como Terminal Server?


Obrigado pela contribuição. =)

[9] Comentário enviado por fs.schmidt em 02/03/2012 - 17:30h

edulanzani = Se o make consegui compilar corretamente, no diretório irá estar o excutável, com o nome "rdesktop"

brunovictor86 = Essa linha </aplicativo> apareceu por engano na publicação da dica, testei aqui apenas retirando, copiando e colando e funcionou perfeitamente.

Tacioandrade = Verifique se está com permissão de gravação no diretório informado na variável SOCKETRDP

Sobre a limitação de sessões simultaneas no Windows sei que o XP ou 7 não permite, somente o TS da linha Server.

Abraços e obrigado pela leitura !

[10] Comentário enviado por Tacioandrade em 03/03/2012 - 23:30h

Estava realmente como somente para leitura, porem mesmo dando permissão a pasta C:\seamlessrdp e todos os arquivos dentro dela, continua dando o mesmo erro: Error binding to socket: bind: Permissão negada

O acesso normal ao computador via rdesktop funciona perfeitamente, apenas quando o parametro -A está ativo que ele dá este erro. =/

[11] Comentário enviado por edulanzani em 04/03/2012 - 08:08h

Tacioandrade = Qual a versão do windows que você está utilizando?

[12] Comentário enviado por Tacioandrade em 04/03/2012 - 22:08h

Eu estou usando o Windows XP, porem tentei também com o 2003 server que instalei apenas para testar isso.

Uma coisa que percebi é que a pasta está como somente para leitura e mesmo que eu retire esta opção, toda vez que eu clico em OK (após aplicar) ela volta a ficar somente para leitura.


Tentei isso várias vezes, pois vejo nisto um bom projeto para livrar dos XPiratas uma empresa que presto consultória. =)

[13] Comentário enviado por fs.schmidt em 05/03/2012 - 09:53h

Tacioandrade, esse erro está dando no Linux, o rdesktop não está conseguindo escrever no arquivo com socket para realizar o compartilhamento de sessão.

[14] Comentário enviado por ipi em 06/03/2012 - 23:13h

Desculpe, eu nao entendi direito, precisa ter um windows instalado em outra particao ou numa VM? É isso mesmo?

Obrigado se puder esclarecer.

[15] Comentário enviado por fs.schmidt em 07/03/2012 - 09:37h

Ipi = Esta configuração pode ser feita através de uma máquina virtual Windows no próprio sistema, ou com um servidor através do Terminal Services.

[16] Comentário enviado por edulanzani em 12/04/2012 - 09:09h

Estou usando essa solução a quase um mes. E funciona muito bem. Parabéns pelo artigo.

[17] Comentário enviado por manchatnt em 24/04/2012 - 14:01h

Boa Tarde a todos.
Consegui rodar no Windows Server 2003.
Mas não no Windows XP. No Windows XP abre a conexão tsclient sem executar o aplicativo desejado.
Existe alguma configuração em específico para o Windows XP?

[18] Comentário enviado por tacioandrade em 24/04/2012 - 17:01h

Cara tava com o mesmo problema, para resolver instalei um patch que transformar o XP em um servidor TS.

http://ziggi.uol.com.br/downloads/terminal-server-patch

Com isso funciona perfeitamente.

[19] Comentário enviado por igor.matos em 11/09/2012 - 10:39h

Opa... quando executo o MAKE me aparece:

pluginti@ubu64:~/rdp/rdesktop$ make
make: *** Nenhum alvo indicado e nenhum arquivo make encontrado. Pare.
pluginti@ubu64:~/rdp/rdesktop$ sudo ./configure
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking whether byte ordering is bigendian... no
checking for X... no

ERROR: Could not find X Window System headers/libraries.

O que pode ser?

[20] Comentário enviado por fs.schmidt em 13/09/2012 - 10:46h

Olá igor.matos, provavelmente no momento da compilação as bibliotecas do X WIndow System não estão sendo encontradas. Confira se estão instaladas e você pode especificar os caminhos com as opções –x-includes e –x-libraries.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts