X11

我怎樣才能讓 xeyes 工作?- 本地系統上的 XQuartz 顯示錯誤

  • September 8, 2021

我使用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(和相關應用程序)和從終端執行的二進製文件,我分別使用Boldcode 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。你可能有一個大蘇爾特定的問題。

引用自:https://unix.stackexchange.com/questions/667339