X переадресация через SSH с Mac на Linux

8364
Alex B

Мне нужно запускать приложения Mac на удаленном компьютере Mac и отображать его на X-сервере локальной машины Linux (многие статьи в Интернете, похоже, подробно описывают, как бы вы сделали это наоборот).

$ 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. Моя $DISPLAYпеременная кажется пустой. Как это должно выглядеть, чтобы пересылка работала правильно?
  2. Можно ли вообще запускать приложения OSX?
8

3 ответа на вопрос

6
Arjan

Если Mac Mac был Aqua X, вам не нужно запускать X (XQuartz) для запуска других программ X на Mac ...

Итак: нет, я думаю, что вы не можете сделать это.


Но, чтобы помочь вам начать, я сначала попробую переслать настоящие X-программы на ваш Linux-компьютер:

  • На вашем Mac: установите XQuartz, если вы еще этого не сделали (например, XQuartz 2.3.4 из дополнительных установок на DVD с OS X 10.6 или загрузите последнюю версию из проекта XQuartz ).

  • На вашем Mac: перейдите X11Forwarding noв X11Forwarding yes(и убедитесь, что #перед этой строкой нет хеша ( )), используя sudo vi /private/etc/sshd_configили используя sedкоманду от Apple Enabling X11 Forwarding . Это также обеспечит DISPLAYавтоматическую установку переменной.

  • На вашей машине Linux:

    ssh -Y user @ mac-box Xterm 

(Некоторые последующие шаги могут включать Googling для Xephyr(или более старых Xnest). И если у вас возникнут проблемы с клавиатурой: Google xmodmap, или используйте xevдля отладки. Или для проблем со шрифтами: Google xfsи xset +fp tcp/mac-box:7100. Но я сомневаюсь, что вы можете запускать программы Aqua таким образом.)

К сожалению, вы правы. Я не могу запустить симулятор Xcode и iPhone через SSH, хотя могу запустить xterm. Также мне не нужно было устанавливать XQuartz на стоковую версию 10.6. Alex B 14 лет назад 0
4
Doug Harris

Похоже, ваша главная цель - просмотреть запущенные приложения Mac на компьютере с Linux. Арджан прав, переадресация X не будет работать для этого.

Вы должны включить общий доступ к экрану на панели общего доступа в Системных настройках. Это включит сервер VNC. Используя клиент VNC на вашем компьютере с Linux, вы сможете увидеть свой рабочий стол Mac. В этой статье показано, как настроить его на стороне Mac (шаги 1-3), далее (слишком много) о настройке dyndns и открытии портов на базовой станции Airport, а затем немного о настройке на стороне клиента (шаги 20-21).

И есть также много программ, которые используют только одно приложение (а не весь рабочий стол). Я думаю, что это можно сделать даже с помощью новейшего кроссплатформенного Skype. (Я не уверен, что Skype также позволяет * управлять * удаленной машиной, а не только смотреть на ее экран.) Arjan 14 лет назад 0
Я хотел бы избежать его использования. Кажется, VNC остается единственной альтернативой на данный момент. Alex B 14 лет назад 0
-2
BGP Acharya

Просто используйте

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

войти в оболочку, где не возникнет проблем с X11. Смотрите manpages для получения подробной информации о опции -m.

* -m Оставить среду без изменений. Вызванная оболочка - это ваша оболочка входа в систему, и никаких изменений в каталогах не производится. * - Как это связано с вопросом? Arjan 11 лет назад 0