我怎樣才能讓 xeyes 工作?- 本地系統上的 XQuartz 顯示錯誤
我使用https://www.xquartz.org/ (XQuartz-2.8.1.dmg)上提供的下載在我的 Mac (Big Sur, v. 11.5.2) 上安裝了 XQuartz ,但我一直無法使用它。在過去的幾周里,我一直未能解決這個問題,我真的希望有人能幫助我指出正確的方向。
我一直在使用 xeyes 來測試安裝並得到以下響應:
(base) magnoliafork ~ % xeyes Error: Can't open display: :0.0 (base) magnoliafork ~ % echo "$DISPLAY" :0.0
我嘗試修復它的一種方法是將
DISPLAY
我的.zshrc
文件設置為:0
,localhost=0
,並且只是數字0
。我還嘗試將我的 IP 地址放在前面:0.0
。這些解決方案都沒有奏效。##### DISPLAY, for plotting PATH="/opt/:$PATH" export DISPLAY DISPLAY=":0.0"
另一個執行緒中有人建議更改
sshd_config
文件中的預設選項,因此我更新了 X11 選項,如下所示:#AllowAgentForwarding yes #AllowTcpForwarding yes #GatewayPorts no X11Forwarding yes X11UseForwarding yes X11DisplayOffset 10 X11UseLocalhost yes #PermitTTY yes #PrintMotd yes #PrintLastLog yes #TCPKeepAlive yes #PermitUserEnvironment no #Compression delayed #ClientAliveInterval 0 #ClientAliveCountMax 3 #UseDNS no #PidFile /var/run/sshd.pid #MaxStartups 10:30:100 #PermitTunnel no #ChrootDirectory none #VersionAddendum none
它仍然無法正常工作,我懷疑以前的解決方案是解決您可以讓 XQuartz 在本地工作但不能通過 ssh 工作的情況。我什至無法讓它在本地工作,在這一點上,我不知道下一步該嘗試什麼。任何想法都會非常有幫助!
不知道這是否有幫助,但我從控制台複製了這個:
X11.app: do_start_x11_server(): argc=7 argv[0] = /opt/X11/bin/Xquartz argv[1] = :0 argv[2] = -nolisten argv[3] = tcp argv[4] = -iglx argv[5] = -auth argv[6] = /Users/magnoliafork/.serverauth.2211
更多評論資訊:
- 當我從 Apple 終端執行 xeyes 時,XQuartz 圖示不會彈出。
- 如果我嘗試使用
xquartz
命令直接從 Apple 終端執行 XQuartz,則會彈出 XQuartz 圖示,然後我會收到來自 Apple 的問題報告:“無法建立任何偵聽套接字 - 確保 X 伺服器尚未執行"- 我可以從 XQuartz 終端“xterm”執行 xeyes,但我更喜歡 Apple 終端,因為它更實用。
注意:為了清楚地區分 Finder(和相關應用程序)和從終端執行的二進製文件,我分別使用Bold和
code formatting
。你似乎有兩個問題:
- 從終端啟動 XQuartz 安裝
DISPLAY
正確設置第一個問題是您使用 a而不是 via安裝了XQuartz,並安裝在Finder中。這意味著您需要通過 Finder 或在命令行上使用
.dmg``brew
$ /Applications/Utilities/XQuartz.app/Contents/MacOS/X11 &
注意:我的 XQuartz 版本也是通過 a 安裝的
.dmg
,也許正因為如此,我似乎沒有xquartz
可用於通過終端啟動 XQuartz 的命令- 因此使用XQuartz應用程序包中的X11
二進製文件。現在看來,您正在嘗試從終端
xeyes
應用程序的實例執行,而不是從XQuartz內部執行,解決方案非常簡單。xterm
您需要獲取
DISPLAY
您的XQuartz並將其分配給DISPLAY
您的終端應用程序。首先從Finder或使用我上面指定的命令行啟動XQuartz 。
在XQuartz類型的 xterm 中
echo $DISPLAY
這應該給你類似的東西
bash-3.2$ echo $DISPLAY /private/tmp/com.apple.launchd.8cSMuyvAKe/org.macosforge.xquartz:0 bash-3.2$
現在在終端中,輸入(替換為您的全部
DISPLAY
價值)$ export DISPLAY=/private/tmp/com.apple.launchd.8cSMuyvAKe/org.macosforge.xquartz:0
接著
$ xeyes
然後 xeyes應該出現在XQuartz會話中。
請注意,這適用於在 High Sierra 10.13.6 上執行的 XQuartz 2.7.11。你可能有一個大蘇爾特定的問題。