2011-04-11 141 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操作。