X meneruskan lebih dari SSH dari Mac ke kotak Linux

9

Saya perlu menjalankan aplikasi Mac pada mesin Mac jarak jauh dan menampilkannya di server X mesin Linux lokal (banyak artikel di Internet tampaknya merinci bagaimana Anda melakukannya dengan cara yang berlawanan).

$ 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. $DISPLAYVariabel saya tampaknya kosong. Seperti apa seharusnya agar penerusan bekerja dengan benar?
  2. Bisakah saya menjalankan aplikasi OSX dengan cara ini?
Alex B
sumber

Jawaban:

6

Jika Aqua Mac adalah X, maka Anda tidak perlu menjalankan X (XQuartz) untuk memulai program X lainnya pada Mac ...

Jadi: tidak, saya pikir Anda tidak bisa melakukan ini.


Tapi, untuk membantu Anda memulai, saya pertama kali mencoba untuk mendapatkan program X yang benar diteruskan ke mesin Linux Anda:

  • Di Mac Anda: instal XQuartz jika Anda belum melakukannya (seperti XQuartz 2.3.4 dari instalasi opsional pada OS X 10.6 DVD, atau unduh yang terbaru dari proyek XQuartz ).

  • Di Mac Anda: ubah X11Forwarding nomenjadi X11Forwarding yes(dan pastikan tidak ada hash ( #) di depan baris itu) menggunakan sudo vi /private/etc/sshd_config, atau menggunakan sedperintah dari Apple Mengaktifkan Penerusan X11 . Ini juga akan memastikan DISPLAYvariabel diatur secara otomatis.

  • Di mesin Linux Anda:

    ssh -Y user @ mac-box
    xterm
    

(Beberapa langkah selanjutnya mungkin termasuk Googling untuk Xephyr(atau yang lebih tua Xnest). Dan jika Anda mengalami masalah keyboard: Google xmodmap, atau gunakan xevuntuk debugging. Atau untuk masalah font: Google xfsdan xset +fp tcp/mac-box:7100. Tapi saya ragu Anda dapat menjalankan program Aqua dengan cara ini.)

Arjan
sumber
1
Sayangnya kamu benar. Saya tidak dapat menjalankan Xcode dan iPhone simulator melalui SSH, meskipun saya dapat menjalankan xterm. Juga, saya tidak perlu menginstal XQuartz pada stok 10.6 instal.
Alex B
@AlexB Apakah ada perubahan dalam 10 tahun terakhir?
Muhammad bin Yusrat
4

Kedengarannya seperti tujuan utama Anda di sini adalah untuk melihat menjalankan aplikasi Mac pada mesin linux. Arjan benar, penerusan X tidak akan berhasil untuk ini.

Anda harus mengaktifkan Berbagi Layar di panel Berbagi di Preferensi Sistem. Ini akan menyalakan server VNC. Menggunakan klien VNC di mesin linux Anda, Anda akan dapat melihat desktop Mac Anda. Artikel ini menunjukkan cara mengaturnya di sisi mac (langkah 1-3), terus (terlalu banyak) tentang pengaturan dyndns dan membuka port di stasiun pangkalan Bandara dan kemudian memiliki sedikit di bagian bawah tentang pengaturan naik ke sisi klien (langkah 20-21).

Doug Harris
sumber
Dan ada juga banyak program di luar sana yang hanya berbagi satu aplikasi (bukan seluruh desktop). Saya pikir orang bahkan dapat melakukan itu menggunakan Skype terbaru, cross-platform. (Saya tidak yakin apakah Skype juga memungkinkan seseorang untuk mengontrol mesin remote, bukan hanya mengintip ke layar.)
Arjan
Saya berharap saya bisa menghindari menggunakannya. Tampaknya VNC tetap menjadi satu-satunya alternatif saat ini.
Alex B
-2

Gunakan saja

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

untuk masuk ke dalam shell di mana tidak ada masalah X11 akan terjadi. Lihat halaman manual untuk detail tentang opsi '-m'.

BGP Acharya
sumber
-m Biarkan lingkungan tidak dimodifikasi. Shell yang dipanggil adalah shell login Anda, dan tidak ada perubahan direktori yang dibuat. - bagaimana hal itu terkait dengan pertanyaan?
Arjan