我使用 brew 安装了 XQuartz,似乎只有当我通过 XQuartz 启动终端并在其上使用 ssh -X 时,X11 转发才有效。当我在终端应用程序上运行 ssh -X 时,它不起作用(XQuartz 仍在后台运行)。
答案1
您应该尝试直接从网站 xquartz.org 下载并安装 XQuartz-2.8.5.pkg,而不是从 brew 下载 xquartz 版本。
对于我来说,从终端或 iTerm 启动任何 X11 应用程序都会自动启动 XQuartz.app,并且终端中的 $DISPLAY 已设置为一个不寻常的值,该值肯定是由 pkg 安装程序设置的(我不使用 brew 中的 xquartz)。看起来好像某个 launchd 脚本或应用程序设置了这个变量。也许是 brew 版本没有这样做?
$ echo $DISPLAY
/private/tmp/com.apple.launchd.NzZKy3HHcG/org.xquartz:0
我在 /Library/LaunchDaemons/org.xquartz.privileged_startx.plist 下找到一个 launchd plist,它启动:
/opt/X11/libexec/privileged_startx -d /opt/X11/etc/X11/xinit/privileged_startx.d
并且在/Library/LaunchAgents/org.xquartz.startx.plist 下还有另一个脚本,似乎负责设置 DISPLAY。
如您所见,此权限扩展和 DISPLAY 设置机制安装在 /opt/X11/ 中,但未安装在 /opt/homebrew/ 中,因此它必须来自 pkg 安装程序。也许 brew 安装出了问题。