我在 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-server
。sudo port install xorg-server
我还必须使用launchctl load -w /Library/LaunchAgents/org.macports.startx.plist
(发现这里)并用于sudo port -f deactivate xinit && sudo port activate xinit
(发现这里)。
不幸的是它也不起作用(我在服务器上收到一个错误,说它没有权限在我的本地机器上打开 $DISPLAY)。
超级用户中讨论类似问题的其他帖子:
- 关于小牛队的问题,此主题尚无答案。
- 关于 snowleopard 的问题:我需要
launchctl load -w
再次重做此操作,并注意sudo
我不知道的提示。
我尝试了所有可能的组合,并在网上搜索各种可能性。我在这里束手无策,大家有什么想法吗?
答案1
答案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 及之后无关。但您的情况可能有所不同,因此请按照此调试说明检查您的问题可能是什么。