X11.app(在 SnowLeopard 上)无法启动

X11.app(在 SnowLeopard 上)无法启动

今天我发现 X11.app 在我的 Mac 上不再可用。我不确定这是什么时候发生的。我想距离我上次使用 X11 应用程序已经过去了几个星期。

我说的“不再起作用”是指它仍然起作用绝对没有如果我尝试直接运行 X11.app,dock 中不会出现任何内容,也没有任何错误消息——就好像我根本没有运行它一样。

如果我尝试从终端运行 X 应用程序(例如:xterm),它会一直挂起。我猜它在等待 X11 启动。

我尝试从 Snow Leopard 安装 DVD 重新安装 X11,但似乎没有任何效果。

更新

我安装了 MacPorts,看起来xorg-server可能已经安装了。我尝试卸载它...

port -u uninstall xorg xorg-server

...并重新安装它...

port install xorg xorg-server

...但无论哪种方式,事情都不起作用。

以下是/var/log/system.logMacPorts xorg 安装时显示的内容。

Dec  1 14:28:26 Stripy org.macports.X11.stub[51551]: Xquartz: bootstrap_look_up(): Unknown service name
Dec  1 14:28:27 Stripy org.macports.startx[51470]: waiting for X server to begin accepting connections 
Dec  1 14:28:27 Stripy org.macports.startx[51470]: xinit: giving up
Dec  1 14:28:27 Stripy org.macports.startx[51470]: xinit: unable to connect to X server: Operation timed out
Dec  1 14:28:27 Stripy org.macports.startx[51470]: waiting for X server to begin accepting connections xinit: server error
Dec  1 14:28:27 Stripy org.macports.startx[51470]: waiting for X server to begin accepting connections 
Dec  1 14:28:27 Stripy defaults[51670]: \nThe domain/default pair of (org.macports.X11, dpi) does not exist
Dec  1 14:28:27 Stripy org.macports.startx[51638]: xauth:  file /Users/laurence/.serverauth.51639 does not exist
Dec  1 14:28:28 Stripy org.macports.startx[51638]: 
Dec  1 14:28:28 Stripy org.macports.X11.stub[51723]: Xquartz: Unable to locate waiting server: org.macports.X11
Dec  1 14:28:28 Stripy org.macports.X11.stub[51727]: Xquartz: Starting X server: /Applications/MacPorts/X11.app/Contents/MacOS/X11 --listenonly
Dec  1 14:28:30 Stripy org.macports.startx[51638]: ^M
Dec  1 14:28:32 Stripy org.macports.startx[51638]: waiting for X server to begin accepting connections 
Dec  1 14:28:48: --- last message repeated 8 times ---

这会一遍又一遍地重复(模数时间戳和 pid)。

当未安装 MacPorts xorg 时,它的样子如下。

Dec  1 14:55:32 Stripy defaults[64771]: \nThe domain/default pair of (org.macports.X11, dpi) does not exist
Dec  1 14:55:32 Stripy org.macports.startx[64737]: xauth:  file /Users/laurence/.serverauth.64738 does not exist
Dec  1 14:55:32 Stripy org.macports.startx[64737]:·
Dec  1 14:55:32 Stripy org.macports.startx[64737]: xinit: unable to run server "/opt/local/bin/X": No such file or directory
Dec  1 14:55:32 Stripy org.macports.startx[64737]: Use the -- option, or make sure that /opt/local/bin is in your path and
Dec  1 14:55:32 Stripy org.macports.startx[64737]: that "/opt/local/bin/X" is a program or a link to the right type of server
Dec  1 14:55:32 Stripy org.macports.startx[64737]: for your display.  Possible server names include:
Dec  1 14:55:32 Stripy org.macports.startx[64737]:·
Dec  1 14:55:32 Stripy org.macports.startx[64737]:     Xquartz     Mac OSX Quartz displays.
Dec  1 14:55:32 Stripy org.macports.startx[64737]:     Xvfb        Virtual frame buffer
Dec  1 14:55:32 Stripy org.macports.startx[64737]:     Xfake       kdrive-based virtual frame buffer
Dec  1 14:55:32 Stripy org.macports.startx[64737]:     Xnest       X server nested in a window on another X server
Dec  1 14:55:32 Stripy org.macports.startx[64737]:     Xephyr      kdrive-based nested X server
Dec  1 14:55:32 Stripy org.macports.startx[64737]:     Xvnc        X server accessed over VNC's RFB protocol
Dec  1 14:55:32 Stripy org.macports.startx[64737]:     Xdmx        Distributed Multi-head X server
Dec  1 14:55:32 Stripy org.macports.startx[64737]:·
Dec  1 14:55:34 Stripy org.macports.startx[64737]:  xinit: giving up
Dec  1 14:55:34 Stripy org.macports.startx[64737]: xinit: unable to connect to X server: Connection refused
Dec  1 14:55:34 Stripy org.macports.startx[64737]: xinit: server error
Dec  1 14:55:34: --- last message repeated 1 time ---

再次,这种情况不断重复。

我还尝试卸载 macports xorg,然后安装 XQuartz(并再次重新启动以确保无误)。运行 Applications/Utilities/XQuartz 不起作用,尝试从终端运行也不起作用 ,以下是使用该设置xterm的输出:/var/log/system.log

Dec  1 16:13:01 Stripy org.macosforge.xquartz.startx[343]: waiting for X server to begin accepting connections 
Dec  1 16:13:01 Stripy org.macosforge.xquartz.X11.stub[400]: Xquartz: bootstrap_look_up(): Unknown service name
Dec  1 16:13:02 Stripy org.macosforge.xquartz.startx[343]: waiting for X server to begin accepting connections 
Dec  1 16:13:02 Stripy org.macosforge.xquartz.startx[343]: /opt/X11/bin/xinit: giving up
Dec  1 16:13:02 Stripy org.macosforge.xquartz.startx[343]: /opt/X11/bin/xinit: unable to connect to X server: Operation timed out
Dec  1 16:13:02 Stripy org.macosforge.xquartz.startx[343]: waiting for X server to begin accepting connections /opt/X11/bin/xinit: server error
Dec  1 16:13:02 Stripy org.macosforge.xquartz.startx[343]: waiting for X server to begin accepting connections 
Dec  1 16:13:02 Stripy defaults[544]: \nThe domain/default pair of (org.macosforge.xquartz.X11, dpi) does not exist
Dec  1 16:13:02 Stripy org.macosforge.xquartz.startx[510]: xauth:  file /Users/laurence/.serverauth.511 does not exist
Dec  1 16:13:02 Stripy org.macosforge.xquartz.startx[510]: 
Dec  1 16:13:02 Stripy org.macosforge.xquartz.X11.stub[588]: Xquartz: Unable to locate waiting server: org.macosforge.xquartz.X11
Dec  1 16:13:02 Stripy org.macosforge.xquartz.X11.stub[589]: Xquartz: Starting X server: /Applications/Utilities/XQuartz.app/Contents/MacOS/X11 --listenonly
Dec  1 16:13:03 Stripy login[619]: USER_PROCESS: 619 ttys000
Dec  1 16:13:04 Stripy org.macosforge.xquartz.startx[510]: ^M
Dec  1 16:13:06 Stripy org.macosforge.xquartz.startx[510]: waiting for X server to begin accepting connections 
Dec  1 16:13:22: --- last message repeated 8 times ---

(再一次重复。)

我尝试搜索其中一些消息,发现了一些结果,但没有找到具体的解决方案。

答案1

OS X 上的 X11 需要一对launchd plist文件处于活动状态;这对文件必须匹配,并且还必须及时正确配置login。每个 X11 服务器都提供自己的一对文件:

  • 适用于 Apple 的 X11,/System/Library/LaunchDaemons/org.x.privileged_startx.plist以及/System/Library/LaunchAgents/org.x.startx.plist
  • 适用于 MacOSForge XQuartz,/Library/LaunchDaemons/org.macosforge.xquartz.privileged_startx.plist以及/Library/LaunchAgents/org.macosforge.xquartz.startx.plist
  • 适用于 MacPorts XQuartz,/Library/LaunchDaemons/org.macports.privileged_startx.plist以及/Library/LaunchAgents/org.macports.startx.plist

当存在多个 X11 安装时,这些很容易混淆。最好的办法是使用 禁用所有 startx LaunchAgents launchctl unload -w,然后仅启用要使用的那个launchctl load -w-w指示launchctl记住后续启动/登录的操作)。不要卸载 LaunchDaemons。为了正确设置 DISPLAY 环境变量,需要在此之后注销并重新登录。

答案2

我的问题类似。我的 .profile 正在“获取”我的 .bashrc,而我的 .bashrc 有一个古老的交互性测试:

# If not running interactively, don't do anything [ -z "$PS1" ] && exit

将“退出”改为“返回”对我来说很有效。

答案3

我的 .profile 位于exec bash末尾(以确保 .bashrc 被执行)。这就是 X11.app 无法启动的原因。

将其更改为. .bashrcX11.app 后可再次正常启动。

相关内容