X ส่งต่อผ่าน SSH จาก Mac ไปยังกล่อง Linux


9

ฉันต้องการเรียกใช้แอปพลิเคชั่น 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 ด้วยวิธีนี้ได้ทั้งหมดหรือไม่

คำตอบ:


6

หาก Aqua ของ Mac เป็น 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คำสั่งจากแอปเปิ้ลเปิดใช้งานการส่งต่อ X11 สิ่งนี้จะช่วยให้มั่นใจว่าDISPLAYตัวแปรถูกตั้งค่าโดยอัตโนมัติ

  • บนเครื่อง Linux ของคุณ:

    ssh -Y user @ mac-box
    xterm
    

(ขั้นตอนต่อไปอาจรวมถึง Googling สำหรับXephyr(หรือเก่ากว่าXnest) และหากคุณพบปัญหาเกี่ยวกับแป้นพิมพ์: Google xmodmapหรือใช้xevสำหรับการแก้ไขข้อบกพร่องหรือปัญหาอักษร: Google xfsและxset +fp tcp/mac-box:7100แต่ฉันสงสัยว่าคุณสามารถเรียกใช้โปรแกรม Aqua ด้วยวิธีนี้)


1
น่าเสียดายที่คุณพูดถูก ฉันไม่สามารถรัน Xcode และ iPhone simulator ผ่าน SSH ได้แม้ว่าฉันจะเรียกใช้ xterm ได้ก็ตาม นอกจากนี้ฉันไม่จำเป็นต้องติดตั้ง XQuartz ในสต็อก 10.6 ติดตั้ง
Alex B

@AlexB มีการเปลี่ยนแปลงอะไรบ้างในช่วง 10 ปีที่ผ่านมา
Muhammad bin Yusrat

4

ดูเหมือนว่าเป้าหมายหลักของคุณที่นี่คือการดูการใช้งานแอปพลิเคชัน Mac บนเครื่องลินุกซ์ Arjan ถูกต้องการส่งต่อ X จะไม่ทำงานสำหรับสิ่งนี้

คุณควรเปิดใช้งานการแชร์หน้าจอในบานหน้าต่างการแบ่งปันในการตั้งค่าระบบ สิ่งนี้จะเปิดเซิร์ฟเวอร์ VNC การใช้ไคลเอนต์ VNC บนเครื่อง linux ของคุณคุณจะเห็นเดสก์ท็อป Mac ของคุณ บทความนี้แสดงวิธีการตั้งค่าทางด้าน mac (ขั้นตอนที่ 1-3) ดำเนินต่อไป (มากไปหน่อย) เกี่ยวกับการตั้งค่า dyndns และการเปิดพอร์ตในสถานีฐานของสนามบิน ตั้งค่าฝั่งไคลเอ็นต์ (ขั้นตอน 20-21)


และยังมีอีกหลายโปรแกรมที่มีเพียงแอปพลิเคชั่นเดียวเท่านั้น (แทนที่จะเป็นเดสก์ท็อปทั้งหมด) ฉันคิดว่าใครสามารถทำได้โดยใช้ Skype ข้ามแพลตฟอร์มล่าสุด (ผมไม่แน่ใจว่าถ้า Skype ยังช่วยให้หนึ่งในการควบคุมเครื่องระยะไกลมากกว่าเพียงแอบไปที่หน้าจอของมัน.)
Arjan

ฉันหวังว่าฉันจะหลีกเลี่ยงการใช้มัน ดูเหมือนว่า VNC จะเป็นทางเลือกเดียวในตอนนี้
Alex B

-2

เพียงแค่ใช้

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

เพื่อเข้าสู่เชลล์ที่ไม่มีปัญหา X11 ที่จะเกิดขึ้น ดู manpages สำหรับรายละเอียดเกี่ยวกับตัวเลือก '-m'


-m ออกจากสภาพแวดล้อมที่ไม่ได้แก้ไข เชลล์ที่เรียกใช้คือเชลล์ล็อกอินของคุณและไม่มีการเปลี่ยนแปลงไดเร็กทอรี - มันเกี่ยวข้องกับคำถามอย่างไร?
Arjan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.