2011-04-11 142 views
1

我剛剛在系統上安裝了Ubuntu 10.10桌面來完成一些開發工作。我想在我的MacBook上運行X服務器環境而不是鍵盤跳躍(Ubuntu盒子上的圖形系統並不是那麼棒)。在Mac OS X(Snow Leopard)和Ubuntu 10.10之間使用Xnest

在網絡上打交道了我發現下面的命令,我可以在Mac OS X的終端上運行:

/usr/X11/bin/Xnest -geometry 1280x900 :1 & DISPLAY=:1 ssh -X -Y [email protected] gnome-session 

注意我的ssh設置,以便驗證自動發生。

這似乎工作得很好 - Ubuntu桌面出現在我的Mac OS X屏幕上! (如果X11沒有運行,似乎足夠聰明)。但是,如果我嘗試打開任何程序,它就會消失。很近。

任何建議表示讚賞。

更新:由於下面的答案提供了一個教程鏈接,我學會了如何做基本的X轉發。您可以從Mac上的X終端窗口中簡單地這樣做:

ssh -X -Y [email protected] 

那麼你就可以啓動遠程系統上運行,但他們的窗戶在Mac X服務器上的X應用程序。我現在的問題是我要啓動GNOME桌面會話:

gnome-session 

但問題有會話接管整個Mac桌面。您無法調整大小或移動它。更糟糕的是,由窗口管理器管理的窗口的頂部部分最終位於Mac OS放置的菜單欄下方,因此您無法訪問這些控件。我認爲這是Xnest打算解決的問題,還是我誤解了它的全部內容?

回答

1

根據您正在運行的OSX版本,最好的選擇可能是原生Mac X11發行版。它在安裝光盤上(或者如果您像我一樣通過App Store獲得Lion,則默認情況下它可在Utilities文件夾中找到)。

啓動它(應用程序>實用程序> X11)會顯示一個特定的X11 x終端,您可以使用它將ssh轉發到您的Ubuntu系統。在回答1中的鏈接是相當古老的,我發現這一個更有幫助:http://www.craigryder.com/linux-ubuntudebetc/x11-forwarding-and-ssh-for-remote-linux-ubuntu-desktop/

我使用的唯一額外選項是-C運行我的ssh命令時啓用壓縮的標誌。請注意,您不必運行完整的gnome會話來使用X功能 - 您可以簡單地運行您想要的程序(即$ gedit &)。這可以讓你擺脫使用整個桌面,但它有點奇怪,因爲你的Mac桌面仍然被遮住了。你可以找到更多關於這個技術@http://ubuntuforums.org/showthread.php?t=1373823&page=2

我也注意到,在10.10的Ubuntu,我的系統顯示你所提到的一樣奇怪的UI控件的行爲,但這些消失,當我升級我分配到Ubuntu 11.我真的不深入瞭解是否將X升級到10.10 Ubuntu系統上的最新版本可以解決該問題,但我可以確認它未出現在11中。

最後一點,這似乎仍然強制Mac X11服務器進入全屏模式,但如果按COMMAND-ALT-A,它會立即將您從X桌面移出並返回到您的Lion桌面,當我需要跳出我的Ubuntu系統時,我可以同時運行並保持高效。我似乎總是能夠訪問我所有X應用程序的所有標題和菜單欄,就像我坐在Ubuntu桌面上一樣。

一個警告 - 我運行上述連接到工作站上運行Ubuntu(啓用3D加速功能)的VMWare Workstation VM - 連接到實際硬件可能(雖然我無法理解)如何導致稍有不同行爲。

希望這有助於!

+1

從Mountain Lion開始,X11不再附帶Mac OS。替代品XQuartz可在http://xquartz.macosforge.org/landing/ – 2013-05-23 18:37:39

+0

上查看Tony的評論是正確的 - OS X的最新更新使用XQuartz。我上面提到的技術仍然適用於我,即使使用OS X Mavericks。除了小牛之外,我還沒有測試任何其他版本的OS X,所以你的milage可能會有所不同。 – 2014-07-11 14:26:24

1

VNC不適合你嗎? 或通過SSH進行常規X轉發。

+0

VNC將是一個後備。它似乎依賴於目標系統的圖形硬件,這正是我想要避免的。這聽起來像X11轉發是我想要做的,但是Xnest命令是我基於web搜索結果的。有沒有描述X11轉發如何工作的文檔,我可以加快速度? – AlanObject 2011-04-11 23:56:28

+0

試試[這一個](http://www.vanemery.com/Linux/XoverSSH/X-over-SSH2.html)。 此外,您還可以安裝其他的桌面環境,以你的Ubuntu,它並沒有成爲侏儒...... – 2011-04-12 00:51:50

+0

啊,呃,和:我不知道,你有什麼發展?也許可能只是一個帶有一些數據庫的Web應用程序,所以終端應該足夠使用數據庫的php接口。 – 2011-04-12 00:54:22

2

使用的Xnest或Xephyr這種方式在Mac OS X:

的Xnest:1 -geometry 1280×800 -query 10.0.1.x

Xephyr:1式屏幕1280×1024 -query爲192.168.1.x

您必須做的唯一事情就是通過手動編輯/etc/gdm/custom.cfg或使用gdmsetup GUI程序在Linux中啓用遠程登錄。這裏以CentOS 5爲例。在Ubuntu中,事情會有點不同。

這種方法與微軟的RDP(屏幕截圖)VNC非常不同,而XDMCP利用Mac的圖形功能來輔助Linux系統。

請記住,X11是專門設計用於網絡連接而不是整體或附加的顯示設備。 X具有網絡透明性:應用程序(客戶端應用程序,例如Linux上的Firefox)運行的計算機可能與用戶的本地計算機(顯示服務器,即Mac上的X11)不同。這種方法允許在用戶的本地X服務器上完全加速2D和3D操作。