【问题标题】:Using Xnest between Mac OS X (Snow Leopard) and Ubuntu 10.10在 Mac OS X (Snow Leopard) 和 Ubuntu 10.10 之间使用 Xnest
【发布时间】:2011-04-11 22:18:42
【问题描述】:

我刚刚在系统上安装了一个 Ubuntu 10.10 桌面来做一些开发工作。我想在我的 MacBook 上运行 X 服务器环境而不是键盘跳跃(Ubuntu 机器上的图形系统不是那么好)。

在网上四处寻找,我发现了以下命令,我可以在 Mac OS X 的终端上运行:

/usr/X11/bin/Xnest -geometry 1280x900 :1 & DISPLAY=:1 ssh -X -Y grog@ubuntusys gnome-session

请注意,我已设置 ssh,因此身份验证会自动进行。

这似乎很好用——Ubuntu 桌面出现在我的 Mac OS X 屏幕上! (如果 X11 尚未运行,它似乎足够聪明地启动它)。但是,如果我尝试打开任何程序,它就会消失。这么近。

任何建议表示赞赏。

更新:感谢下面提供教程链接的答案,我学会了如何进行基本的 X 转发。您可以像这样从 Mac 上的 X 终端窗口执行此操作:

ssh -X -Y username@targetsystem

然后您可以启动在远程系统上运行但它们的窗口位于 Mac X 服务器上的 X 应用程序。我现在遇到的问题是我想启动 gnome 桌面会话:

gnome-session

但问题是会话接管了整个 Mac 桌面。您不能调整它的大小或移动它。更糟糕的是,由窗口管理器管理的窗口的顶部最终位于 Mac OS 放置在那里的菜单栏下方,因此您无法访问这些控件。我认为这是 Xnest 旨在解决的问题,还是我误解了它的全部含义?

【问题讨论】:

    标签: osx-snow-leopard x11 ubuntu-10.10


    【解决方案1】:

    在您的 Mac OS X 上以这种方式使用 Xnest 或 Xephyr:

    Xnest :1 -geometry 1280x800 -query 10.0.1.x

    Xephyr :1 -screen 1280x1024 -query 192.168.1.x

    您唯一需要做的就是通过手动编辑 /etc/gdm/custom.cfg 或使用 gdmsetup GUI 程序在 Linux 中启用远程登录。这里以 CentOS 5 为例。在 Ubuntu 中情况会有所不同。

    这种方法与 VNC 非常不同,VNC 类似于 Microsoft 的 RDP(屏幕捕获),而 XDMCP 则利用 Mac 的图形功能来辅助 Linux 系统。

    请记住,X11 专门设计用于通过网络连接而不是在集成或连接的显示设备上使用。 X 具有网络透明性:运行应用程序(客户端应用程序,例如 Linux 上的 Firefox)的机器可能与用户的本地机器(显示服务器,即 Mac 上的 X11)不同。这种方法允许在用户的本地 X 服务器上完全加速 2D 和 3D 操作。

    【讨论】:

      【解决方案2】:

      根据您运行的 OSX 版本,最好的选择可能是本机 Mac X11 Distribution。它在安装 CD 上(或者如果您像我一样通过 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/

      我使用的唯一额外选项是在运行 ssh 命令时启用压缩的 -C 标志。请注意,您不必运行完整的 gnome-session 来使用 X 功能 - 您可以简单地运行您想要的程序(即 $ gedit&)。这让你不再使用整个桌面,但这有点奇怪,因为你的 Mac 桌面仍然会变黑。你可以找到更多关于这个技术@http://ubuntuforums.org/showthread.php?t=1373823&page=2

      我还注意到,在 10.10 Ubuntu 上,我的系统显示了与您提到的相同的奇怪 UI 控制行为,但是当我将发行版升级到 Ubuntu 11 时,这些行为就消失了。我并没有真正深入了解是否只是将 X 升级到Ubuntu 10.10 系统上的最新版本会修复该问题,但我可以确认它不会出现在 11 中。

      最后一点,这似乎仍会强制 Mac X11 服务器进入全屏模式,但如果您按下 COMMAND-ALT-A,它会立即将您带出 X 桌面并回到您的 Lion 桌面,这让我当我需要跳出我的 Ubuntu 系统时,既能运行又能保持生产力。我似乎总能访问我所有 X 应用程序的所有标题和菜单栏,就像我坐在 Ubuntu 桌面上一样。

      一个警告 - 我正在运行上述操作以连接到在我的工作站上运行 Ubuntu(启用 3D 加速)的 VMWare Workstation VM - 连接到实际硬件可能(尽管我无法理解如何)导致行为略有不同.

      希望这有帮助!

      【讨论】:

      • X11 自 Mountain Lion 起不再随 Mac OS 一起提供。 xquartz.macosforge.org/landing 提供替代品 XQuartz
      • Tony 的评论是正确的 - OS X 的最新更新使用 XQuartz。我上面提到的技术仍然对我有用,即使使用 OS X Mavericks。除了 Mavericks,我还没有测试过任何其他版本的 OS X,所以你的里程可能会有所不同......
      【解决方案3】:

      VNC 不适合您吗? 或通过 SSH 进行常规 X 转发。

      【讨论】:

      • VNC 将是一个后备。它似乎依赖于目标系统的图形硬件,这就是我试图避免的。听起来 X11 转发是我想做的,但 Xnest 命令是我基于网络搜索最终得到的。是否有描述 X11 转发工作原理的文档可以让我快速掌握?
      • 试试this one。另外,你可以在你的 ubuntu 上安装其他桌面环境,它不一定是 gnome...
      • 啊,呃,还有:我想知道,你在开发什么?可能只是一个带有一些数据库的 Web 应用程序,所以在数据库的 php 接口的帮助下,一个终端就足够了?
      • 这有点复杂。我正在使用 Netbeans、Glassfish、Derby 等在我的 MacBook 上开发一个网络应用程序。我的公司希望在 Eclipse、Liferay/Tomcat、MySql 等上标准化开发环境。他们的受控结帐都设置为在 Linux 上运行。我可以在我的 MacBook 上启动一个 Linux VM,但我认为这会更容易。
      猜你喜欢
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 2011-06-08
      • 2011-10-26
      • 2010-11-30
      • 1970-01-01
      相关资源
      最近更新 更多