Xquartz 在 Maverics 上停止工作。无法安装有效的 X11 转发

Xquartz 在 Maverics 上停止工作。无法安装有效的 X11 转发

我在 Mavericks 上使用 XQuartz 时遇到了问题。在我去苹果天才支持更换电池后(当我打开 X11 连接时,天才小伙子强行关闭了电源),当我尝试打开 XQuartz 时,出现了以下崩溃:

*** The application X11 could not be opened. ***
An error occurred while starting the X11 server: "Cannot establish any listening sockets - Make sure an X server isn't already running"
Click Quit to quit X11. Click Report to see more details or send a report to Apple.

我尝试通过以下步骤全新安装 XQuartz:

launchctl unload /Library/LaunchAgents/org.macosforge.xquartz.startx.plist
sudo launchctl unload /Library/LaunchDaemons/org.macosforge.xquartz.privileged_startx.plist
sudo rm -rf /opt/X11* /Library/Launch*/org.macosforge.xquartz.* /Applications/Utilities/XQuartz.app /etc/*paths.d/*XQuartz
sudo pkgutil —forget org.macosforge.xquartz.pkg

然后安装 XQuartz 最新版本(实际日期是这个)。注销,登录,不成功。

我还尝试删除/private/tmp/.X*文件、/private/tmp/launch-*包含 xquartz 显示的文件夹以及目录.Xauthority中的文件$HOME

由于这不起作用,我在卸载 XQuartz 后一直难以使用 X11 port xorg-serversudo port install xorg-server我还必须使用launchctl load -w /Library/LaunchAgents/org.macports.startx.plist(发现这里)并用于sudo port -f deactivate xinit && sudo port activate xinit(发现这里)。

不幸的是它也不起作用(我在服务器上收到一个错误,说它没有权限在我的本地机器上打开 $DISPLAY)。

超级用户中讨论类似问题的其他帖子:

  1. 关于小牛队的问题,此主题尚无答案。
  2. 关于 snowleopard 的问题:我需要launchctl load -w再次重做此操作,并注意 sudo我不知道的提示。

我尝试了所有可能的组合,并在网上搜索各种可能性。我在这里束手无策,大家有什么想法吗?

答案1

据报道票589,这可能是由于您的 shell 初始化脚本中的错误而发生的。

据报道票685,如果您用不兼容的版本(例如:GNU mktemp)替换 /usr/bin/mktemp,就会发生这种情况。

答案2

今天我有时间再次研究这个问题,有趣的是,我甚至不需要在/usr/bin/mktemp路径上提供原始的 mktemp(你不应该这样做,这只是为了说明之前关于mktemp二进制文件的讨论与问题无关):

`--> ls /usr/bin/mktemp
ls: cannot access /usr/bin/mktemp: No such file or directory

port我的问题可能是xquartz 与原始 xquartz 一起安装。我在两个客户端上都进行了完全卸载:

sudo port uninstall xinit xorg-server

对于“原始” xquartz(信息这里,寻找“卸载(Snow Leopard 或更高版本)”:

launchctl unload /Library/LaunchAgents/org.macosforge.xquartz.startx.plist
sudo launchctl unload /Library/LaunchDaemons/org.macosforge.xquartz.privileged_startx.plist
sudo rm -rf /opt/X11* /Library/Launch*/org.macosforge.xquartz.* /Applications/Utilities/XQuartz.app /etc/*paths.d/*XQuartz
sudo pkgutil --forget org.macosforge.xquartz.pkg

其中一些可能会失败,因为端口卸载可能会停用它们,您可以忽略这些失败。

这很重要。在我之前的尝试中,我失败可能是因为我不会重新启动我的帐户,而这似乎是使 launchctl 生效所必需的(我在这里可能错了,但无论如何,注销并登录您的帐户以使安装更改生效很重要)。

在干净的环境下,现在安装 XQuartz,注销,登录,它应该可以工作。如果不行,请查看以下调试说明石英,寻找“ssh X forwarding debug”:

[1] local $ echo $DISPLAY
/tmp/launch-Bh0fLm/:0
[2] local $ grep DISPLAY ~/.*rc ~/.login ~/.*profile ~/.MacOSX/environment.plist 2>/dev/null
[3] local $ grep -r DISPLAY /opt/local/etc /sw/etc /etc 2>/dev/null
[4] local $ ssh -Y remote
Warning: No xauth data; using fake authentication data for X11 forwarding.
[5] remote $ echo $DISPLAY
localhost:10.0
[6] remote $ grep X11 /etc/ssh/sshd_config ~/.ssh/*
X11Forwarding yes
X11DisplayOffset 10

我的问题始于第一行,其中DISPLAY变量为空。我运行命令 2 和 3,但没有任何变化,所以我知道问题出在 上launchtcl,与步骤 4 及之后无关。但您的情况可能有所不同,因此请按照此调试说明检查您的问题可能是什么。

相关内容