
我使用brew安裝了XQuartz,似乎X11轉發僅在我透過XQuartz啟動終端並在其上使用ssh -X時才起作用。當我在終端應用程式上運行 ssh -X 時它不起作用(XQuartz 仍在後台運行)。
答案1
您應該嘗試直接從網站xquartz.org 下載並安裝XQuartz-2.8.5.pkg,而不是brew 的xquartz 版本。
對我來說,從終端啟動任何X11 應用程式或iTerm 都會自動啟動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。
如您所看到的,此權限擴充和顯示集機制安裝在 /opt/X11/ 中,但不在 /opt/homebrew/ 中,因此它必須來自 pkg 安裝程式。可能是brew安裝出了問題。