X encaminhando sobre SSH do Mac para uma caixa Linux

9

Preciso executar aplicativos Mac em uma máquina Mac remota e exibi-la no servidor X de uma máquina Linux local (muitos artigos na Internet parecem estar detalhando como você faria isso da maneira oposta).

$ ssh -X mac-box
$ cd /Developer/Applications/Xcode.app
$ ./Contents/MacOS/Xcode
Sat Oct  3 20:41:26 mac-box.local Xcode[15634] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
^C
  1. Minha $DISPLAYvariável parece estar vazia. Como deve ser para que o encaminhamento funcione corretamente?
  2. Posso executar aplicativos OSX dessa maneira?
Alex B
fonte

Respostas:

6

Se o Aqua de um Mac fosse o X, não seria necessário executar o X (XQuartz) para iniciar outros programas X no Mac ...

Então: não, acho que você não pode fazer isso.


Mas, para ajudar você a começar, eu tentaria primeiro enviar os verdadeiros programas X para a sua máquina Linux:

  • No seu Mac: instale o XQuartz se ainda não o fez (como o XQuartz 2.3.4 de instalações opcionais no DVD do OS X 10.6 ou faça o download da versão mais recente do projeto XQuartz ).

  • No seu Mac: mude X11Forwarding nopara X11Forwarding yes(e verifique se não há hash ( #) na frente dessa linha) usando sudo vi /private/etc/sshd_configou usando um sedcomando do Enabled X11 Forwarding da Apple . Isso também garantirá que a DISPLAYvariável seja definida automaticamente.

  • Na sua máquina Linux:

    ssh -Y usuário @ mac-box
    xterm
    

(Algumas próximas etapas podem incluir pesquisar no Google para Xephyr(ou mais antigo Xnest). E se você tiver problemas de teclado: Google xmodmapou usar xevpara depuração. Ou para problemas de fonte: Google xfse xset +fp tcp/mac-box:7100. Mas duvido que você possa executar os programas Aqua dessa maneira.)

Arjan
fonte
1
Infelizmente você está certo. Não consigo executar o Xcode e o iPhone simulator via SSH, mesmo que eu possa executar o xterm. Além disso, não era necessário instalar o XQuartz na instalação do estoque 10.6.
Alex B
@AlexB Alguma coisa mudou nos últimos 10 anos?
Muhammad bin Yusrat 14/04
4

Parece que seu objetivo principal aqui é visualizar os aplicativos Mac em execução em uma máquina Linux. Arjan está certo, o encaminhamento X não funcionará para isso.

Você deve ativar o compartilhamento de tela no painel Compartilhamento, em Preferências do sistema. Isso ativará um servidor VNC. Usando um cliente VNC em sua máquina Linux, você poderá ver a área de trabalho do Mac. Este artigo mostra como configurá-lo no lado do mac (etapas 1 a 3), continua (um pouco demais) sobre a configuração de dyndns e a abertura de portas em uma estação base do aeroporto e, em seguida, tem um pouquinho na parte inferior sobre a configuração no lado do cliente (etapas 20 a 21).

Doug Harris
fonte
E também existem muitos programas por aí que compartilham apenas um único aplicativo (em vez de toda a área de trabalho). Acho que se pode fazer isso usando o mais recente Skype, multiplataforma. (Não estou certo se o Skype também permite controlar a máquina remota, e não apenas espreitar a sua tela.)
Arjan
Eu gostaria de poder evitar usá-lo. Parece que o VNC continua sendo a única alternativa neste momento.
Alex B
-2

Apenas use

su -lm <usrname-to-proxy-for>

para entrar em um shell no qual não ocorrerão problemas no X11. Veja páginas de manual para detalhes sobre a opção '-m'.

BGP Acharya
fonte
-m Deixe o ambiente não modificado. O shell invocado é o seu shell de login e nenhuma alteração de diretório é feita. - como isso está relacionado à questão?
Arjan