我怎样才能让 xeyes 工作? - 本地系统上的 XQuartz 显示错误

我怎样才能让 xeyes 工作? - 本地系统上的 XQuartz 显示错误

我使用以下网站上提供的下载在我的 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。您可能会遇到大苏尔特定问​​题。

相关内容