Przekazywanie X przez SSH z komputera Mac do urządzenia z systemem Linux

9

Potrzebuję uruchomić aplikacje Mac na zdalnym komputerze Mac i wyświetlić je na serwerze X lokalnej maszyny Linux (wiele artykułów w Internecie wydaje się szczegółowo opisywać, jak to zrobić w odwrotny sposób).

$ 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. Moja $DISPLAYzmienna wydaje się być pusta. Jak powinno to wyglądać, aby przekazywanie działało poprawnie?
  2. Czy mogę w ogóle uruchamiać aplikacje OSX?
Alex B.
źródło

Odpowiedzi:

6

Jeśli Aqua Maca to X, nie musisz uruchamiać X (XQuartz), aby uruchomić inne programy X na Macu ...

Więc: nie, myślę, że nie możesz tego zrobić.


Ale, aby pomóc Ci zacząć, najpierw spróbuję przekazać prawdziwe programy X na twój komputer z systemem Linux:

  • Na komputerze Mac: zainstaluj XQuartz, jeśli jeszcze tego nie zrobiłeś (np. XQuartz 2.3.4 z opcjonalnych instalacji na dysku DVD z systemem OS X 10.6 lub pobierz najnowszą wersję z projektu XQuartz ).

  • Na komputerze Mac: zmień X11Forwarding nona X11Forwarding yes(i upewnij się, że nie ma hash ( #) przed tym wierszem), używając sudo vi /private/etc/sshd_configlub używając sedpolecenia z Apple Enabling X11 Forwarding . Zapewni to również, że DISPLAYzmienna zostanie ustawiona automatycznie.

  • Na komputerze z systemem Linux:

    ssh -Y użytkownik @ mac-box
    xterm
    

(Kilka kolejnych kroków może obejmować Google Xephyr(lub starsze Xnest). A jeśli napotkasz problemy z klawiaturą: Google xmodmaplub użyj xevdo debugowania. Lub problemów z czcionkami: Google xfsi xset +fp tcp/mac-box:7100. Ale wątpię, czy możesz uruchamiać programy Aqua w ten sposób.)

Arjan
źródło
1
Niestety masz rację. Nie mogę uruchomić Xcode i symulatora iPhone'a przez SSH, mimo że mogę uruchomić Xterm. Ponadto nie musiałem instalować XQuartz na magazynie 10.6.
Alex B
@AlexB Czy coś się zmieniło w ciągu ostatnich 10 lat?
Muhammad bin Yusrat
4

Wygląda na to, że Twoim głównym celem jest przeglądanie działających aplikacji Mac na komputerze z systemem Linux. Arjan ma rację, przekazywanie X nie działa w tym przypadku.

Powinieneś włączyć Udostępnianie ekranu w panelu Udostępnianie w Preferencjach systemowych. Spowoduje to włączenie serwera VNC. Korzystając z klienta VNC na komputerze z systemem Linux, zobaczysz pulpit komputera Mac. W tym artykule pokazano, jak ustawić to po stronie Mac (kroki 1-3), (nieco za dużo) o konfigurowaniu sieci i otwieraniu portów w stacji bazowej na lotnisku, a następnie na dole trochę o ustawianiu w górę po stronie klienta (kroki 20-21).

Doug Harris
źródło
Istnieje również wiele programów, które współużytkują tylko jedną aplikację (zamiast całego pulpitu). Myślę, że można to zrobić nawet przy użyciu najnowszego Skype'a, na wiele platform. (Nie jestem pewien, czy Skype pozwala również sterować komputerem zdalnym, a nie tylko podglądać jego ekran.)
Arjan,
Chciałbym móc tego uniknąć. Wydaje się, że VNC pozostaje jedyną alternatywą w tym momencie.
Alex B
-2

Po prostu użyj

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

aby wejść do powłoki, w której nie wystąpią problemy z X11. Zobacz strony podręcznika, aby uzyskać szczegółowe informacje na temat opcji -m.

BGP Acharya
źródło
-m Pozostaw środowisko niezmodyfikowane. Wywołana powłoka jest powłoką logowania i nie wprowadza się żadnych zmian w katalogu. - jak to się ma do pytania?
Arjan