Chuyển tiếp X qua SSH từ Mac sang hộp Linux


9

Tôi cần chạy các ứng dụng Mac trên máy Mac từ xa và hiển thị trên máy chủ X của máy Linux cục bộ (rất nhiều bài viết trên Internet dường như chi tiết về cách bạn sẽ làm điều đó theo cách ngược lại).

$ 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. $DISPLAYBiến của tôi dường như trống rỗng. Nó trông như thế nào để chuyển tiếp hoạt động chính xác?
  2. Tôi có thể chạy các ứng dụng OSX theo cách này không?

Câu trả lời:


6

Nếu Aqua của Mac là X, thì bạn không cần chạy X (XQuartz) để khởi động các chương trình X khác trên máy Mac ...

Vì vậy: không, tôi nghĩ bạn không thể làm điều này.


Nhưng, để giúp bạn bắt đầu, trước tiên tôi muốn thử các chương trình X thực sự được chuyển tiếp đến máy Linux của bạn:

  • Trên máy Mac của bạn: cài đặt XQuartz nếu bạn chưa làm như vậy (như XQuartz 2.3.4 từ các cài đặt tùy chọn trên DVD OS X 10.6 hoặc tải xuống bản mới nhất từ dự án XQuartz ).

  • Trên máy Mac của bạn: thay đổi X11Forwarding nothành X11Forwarding yes(và đảm bảo không có hàm băm ( #) phía trước dòng đó) bằng cách sử dụng sudo vi /private/etc/sshd_confighoặc sử dụng sedlệnh từ Chuyển đổi X11 của Apple . Điều này cũng sẽ đảm bảo DISPLAYbiến được đặt tự động.

  • Trên máy Linux của bạn:

    ssh -Y người dùng @ mac-box
    xterm
    

(Một số bước tiếp theo có thể bao gồm Googling cho Xephyr(hoặc cũ hơn Xnest). Và nếu bạn gặp phải sự cố bàn phím: Googlexmodmap hoặc sử dụng xevđể gỡ lỗi. Hoặc đối với các sự cố về phông chữ: Google xfsxset +fp tcp/mac-box:7100. Nhưng tôi nghi ngờ bạn có thể chạy các chương trình Aqua theo cách này.)


1
Thật không may bạn đúng. Tôi không thể chạy trình giả lập Xcode và iPhone thông qua SSH, mặc dù tôi có thể chạy xterm. Ngoài ra, tôi không cần cài đặt XQuartz khi cài đặt stock 10.6.
Alex B

@AlexB Có điều gì thay đổi trong 10 năm qua không?
Muhammad bin Yusrat

4

Có vẻ như mục tiêu chính của bạn ở đây là xem các ứng dụng Mac đang chạy trên máy linux. Arjan đã đúng, chuyển tiếp X sẽ không hoạt động cho việc này.

Bạn nên bật Chia sẻ màn hình trong ngăn Chia sẻ trong Tùy chọn hệ thống. Điều này sẽ bật một máy chủ VNC. Sử dụng ứng dụng khách VNC trên máy linux của bạn, bạn sẽ có thể thấy máy tính để bàn Mac của mình. Bài viết này cho thấy cách thiết lập nó ở phía mac (bước 1-3), tiếp tục (hơi quá nhiều) về việc thiết lập đê và mở cổng trong nhà ga sân bay và sau đó có một chút nhỏ ở phía dưới về cài đặt lên phía khách hàng (bước 20-21).


Và cũng có nhiều chương trình ngoài kia chỉ chia sẻ một ứng dụng duy nhất (chứ không phải toàn bộ máy tính để bàn). Tôi nghĩ người ta thậm chí có thể làm điều đó bằng cách sử dụng Skype, đa nền tảng mới nhất. (Tôi không chắc nếu Skype cũng cho phép một người điều khiển máy từ xa, thay vì chỉ nhìn trộm vào màn hình của nó.)
Arjan

Tôi ước tôi có thể tránh sử dụng nó. Có vẻ như VNC vẫn là lựa chọn duy nhất vào thời điểm này.
Alex B

-2

Chỉ dùng

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

để nhập vào một vỏ mà không có vấn đề X11 sẽ xảy ra. Xem trang hướng dẫn để biết chi tiết về tùy chọn '-m'.


-m Rời khỏi môi trường không thay đổi. Shell được gọi là shell đăng nhập của bạn và không có thay đổi thư mục nào được thực hiện. - làm thế nào mà liên quan đến câu hỏi?
Arjan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.