![我怎样才能让 xeyes 工作? - 本地系统上的 XQuartz 显示错误](https://linux22.com/image/195161/%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E8%AE%A9%20xeyes%20%E5%B7%A5%E4%BD%9C%EF%BC%9F%20-%20%E6%9C%AC%E5%9C%B0%E7%B3%BB%E7%BB%9F%E4%B8%8A%E7%9A%84%20XQuartz%20%E6%98%BE%E7%A4%BA%E9%94%99%E8%AF%AF.png)
我使用以下网站上提供的下载在我的 Mac(Big Sur,v.11.5.2)上安装了 XQuartz:https://www.xquartz.org/(XQuartz-2.8.1.dmg),但我一直无法使用它。过去几周我一直未能解决这个问题,我真的希望有人能帮助我指明正确的方向。
我一直使用 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 图标不会弹出。
- 如果我尝试使用该命令直接从 Apple 终端运行 XQuartz
xquartz
,则会弹出 XQuartz 图标,然后我会收到来自 Apple 的问题报告,其中显示“无法建立任何侦听套接字 - 确保 X 服务器尚未运行” ” - 我可以从 XQuartz 终端“xterm”运行 xeyes,但我真的更喜欢 Apple 终端,因为它功能更强大。
答案1
注意:为了清楚地区分 Finder(及相关应用程序)和从终端运行的二进制文件,我使用大胆的和code formatting
分别。
您似乎有两个问题:
- 从终端启动 XQuartz 安装
DISPLAY
正确设置环境变量
第一个问题是你安装了X石英使用 a.dmg
而不是 viabrew
并将其安装在发现者。这意味着您需要通过 Finder 或在命令行上使用
$ /Applications/Utilities/XQuartz.app/Contents/MacOS/X11 &
笔记:我的 XQuartz 版本是还通过 a 安装.dmg
,也许正因为如此,我似乎没有xquartz
可用于通过 a 启动 XQuartz 的命令终端X11
- 因此从内部使用二进制文件X石英应用程序包。
现在看来您正在尝试xeyes
从以下实例运行终端应用程序,而不是从xterm
运行里面X石英,解决办法很简单。
您需要获得DISPLAY
您的X石英并将其分配给DISPLAY
您的终端应用。
首次推出X石英要么从发现者,或使用我上面指定的命令行。
在 xterm 中X石英类型
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应该出现在X石英会议。
请注意,这适用于在 High Sierra 10.13.6 上运行的 XQuartz 2.7.11。您可能会遇到大苏尔特定问题。