3

概述

在我没有意识到的情况下,所有 X11 应用程序都无法使用。由于没有 Time Machine 备份,我无论如何都需要解决这个问题。

环境

  • 比系统默认值更新的 X11 安装在/opt.
  • 因为某些应用程序需要来自 的符号链接/usr,所以我做到了。(例如 Wireshark)
  • 因为stable 2.7.7 有转发错误,目前我使用的是不稳定的 2.7.8。

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

审判

我试图通过使用转储系统调用dtruss。以下示例由 表示sudo dtruss xclock。其他 X11 应用程序的行为也是如此。所有 X11 应用程序在recvfrom.

在此处输入图像描述

我也试过...

  • rm ~/.Xauthority
  • 重装相同版本的X11

但那些与它无关。

很抱歉在这里用日语交叉发布;仍然没有答案...
谢谢。

4

2 回答 2

2

OS X 安装程序会删除 /usr 中的符号链接。最简单的解决方案是重新安装 XQuartz。这应该为使用旧系统位置的 Wireshark 之类的东西设置备份。

你也可以运行sudo /usr/libexec/x11-select /opt/X11

我记得可能在 5 年前左右我们在 libX11 和 libxcb 中遇到的 poll(2) 行为中的一个问题,这让我想起了。剩余部分在 libxcb 的 configure.ac 中,我们在旧版本的 OS X 中使用 select(2) 而不是 poll(2)。问题是它们不支持在字符设备上调用 poll(2),我们d只是得到一个EAGAIN。

在您的情况下,情况似乎并非如此,但是有些东西在 recvfrom 中获得了 EAGAIN 并且可能会忽略它而不是再次尝试。如果你能弄清楚recvfrom(可能在libxcb中?)的调用点是什么,那将是一个很好的下一步。

为了让我获得更多数据,您能否在http://bugreport.apple.com上提交一份雷达文件并包含一个专注于 xclock 的 sysdiagnose?

于 2015-08-11T06:24:04.917 回答
0

通过设置解决DISPLAY=:0.0

于 2015-08-19T13:52:20.777 回答