部署oracle报错Error: Can‘t open display xclock解决

CentOS中配置Oracle图形界面问题及解决方案
文章讲述了在CentOS7环境中部署Oracle时遇到图形界面无法启动的问题,通过测试xclock、xhost和查看错误日志,发现是由于XServer连接拒绝导致。解决方法包括检查并设置DISPLAY变量,以及排查libEGL.so相关错误。
部署运行你感兴趣的模型镜像

一、起因

        因部署oracle过程中需开启图形化界面而无法唤起,使用xclock测试图形化界面

二、环境:

        系统:
        CentOS Linux release 7.8.2003 (Core)

       x11包版本如下:

[root@OEMPRINT-T-APP01 ~]# yum list installed|grep x11
x11vnc.x86_64                         0.9.13-12.el7                    @epel    
x11vnc-javaviewers.noarch             0.9.13-12.el7                    @epel    
xorg-x11-apps.x86_64                  7.7-7.el7                        @os      
xorg-x11-server-Xorg.x86_64           1.20.4-23.el7_9                  @updates 
xorg-x11-server-Xvfb.x86_64           1.20.4-23.el7_9                  @updates 
xorg-x11-server-common.x86_64         1.20.4-23.el7_9                  @updates 
xorg-x11-server-utils.x86_64          7.7-20.el7                       @os      
xorg-x11-xauth.x86_64                 1:1.0.9-1.el7                    @os      
xorg-x11-xinit.x86_64                 1.3.4-2.el7                      @os      
xorg-x11-xkb-utils.x86_64             7.7-14.el7                       @os  

 二、使用xhost 测试图形化界面发现报错

[root@OEMPRINT-T-APP01 ~]# xclock 
Error: Can't open display

三、解决

        1.运行statrtx尝试运行X报错如下:unable to connect to X server: Connection refused

[root@OEMPRINT-T-APP01 ~]# startx 
xauth:  file /root/.serverauth.85539 does not exist


X.Org X Server 1.20.4
X Protocol Version 11, Revision 0
Build Operating System:  3.10.0-957.1.3.el7.x86_64 
Current Operating System: Linux OEMPRINT-T-APP01 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64
Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-1127.19.1.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8
Build Date: 05 April 2023  01:48:15PM
Build ID: xorg-x11-server 1.20.4-23.el7_9 
Current version of pixman: 0.34.0
	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Wed Aug 16 13:14:39 2023
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
VMware: No 3D enabled (0, Success).
Couldn't open libEGL.so.1: libEGL.so.1: cannot open shared object file: No such file or directory
(EE) 
(EE) Backtrace:
(EE) 0: /usr/bin/X (xorg_backtrace+0x55) [0x55a6e8eedae5]
(EE) 1: /usr/bin/X (0x55a6e8d3c000+0x1b5769) [0x55a6e8ef1769]
(EE) 2: /lib64/libpthread.so.0 (0x7f4f9729e000+0xf630) [0x7f4f972ad630]
(EE) 3: /lib64/libc.so.6 (gsignal+0x37) [0x7f4f96f06387]
(EE) 4: /lib64/libc.so.6 (abort+0x148) [0x7f4f96f07a78]
(EE) 5: /lib64/libepoxy.so.0 (0x7f4f92d2d000+0x5e404) [0x7f4f92d8b404]
(EE) 6: /lib64/libepoxy.so.0 (0x7f4f92d2d000+0x5e764) [0x7f4f92d8b764]
(EE) 7: /lib64/libepoxy.so.0 (0x7f4f92d2d000+0xb7b3f) [0x7f4f92de4b3f]
(EE) 8: /lib64/libepoxy.so.0 (0x7f4f92d2d000+0xb9c1f) [0x7f4f92de6c1f]
(EE) 9: /lib64/libepoxy.so.0 (epoxy_has_egl_extension+0x18) [0x7f4f92de8088]
(EE) 10: /usr/lib64/xorg/modules/libglamoregl.so (glamor_egl_init+0x6f) [0x7f4f9326f8df]
(EE) 11: /usr/lib64/xorg/modules/drivers/modesetting_drv.so (0x7f4f93499000+0xae1e) [0x7f4f934a3e1e]
(EE) 12: /usr/bin/X (InitOutput+0x9b9) [0x55a6e8dda7a9]
(EE) 13: /usr/bin/X (0x55a6e8d3c000+0x61a20) [0x55a6e8d9da20]
(EE) 14: /lib64/libc.so.6 (__libc_start_main+0xf5) [0x7f4f96ef2555]
(EE) 15: /usr/bin/X (0x55a6e8d3c000+0x4bd0e) [0x55a6e8d87d0e]
(EE) 
(EE) 
Fatal server error:
(EE) Caught signal 6 (Aborted). Server aborting
(EE) 
(EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE) 
(EE) Server terminated with error (1). Closing log file.

xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

2.按照官方说法,添加DISPLAY变量即可解决,尝试未果

DISPLAY=<machine-name>:0.0

[root@OEMPRINT-T-APP01 ~]# export DISPLAY=localhost:0.0
[root@OEMPRINT-T-APP01 ~]# xclock 
Error: Can't open display: localhost:0.0

查询了很多资料都是让DISPLAY绑定服务器host等等。

注:这里的<machine-name>实际指的是客户端远程ssh的主机名或者IP,也就是客户机的IP

MacBook-Pro ~ % ifconfig|grep 10.137
	inet 10.137.102.39 netmask 0xffffff00 broadcast 10.137.102.255

重新给DISPLAY的环境变量解决。

您可能感兴趣的与本文相关的镜像

GPT-SoVITS

GPT-SoVITS

AI应用

GPT-SoVITS 是一个开源的文本到语音(TTS)和语音转换模型,它结合了 GPT 的生成能力和 SoVITS 的语音转换技术。该项目以其强大的声音克隆能力而闻名,仅需少量语音样本(如5秒)即可实现高质量的即时语音合成,也可通过更长的音频(如1分钟)进行微调以获得更逼真的效果

这个错误: ``` xclock Error: Can't open display: localhost:10.0 ``` 表示 `xclock` 程序无法连接到 X 服务器(即图形显示服务)。这通常出现在你在本地机器上运行一个远程的 Linux 系统(比如通过 SSH 登录到一台服务器),并试图运行图形化程序(如 `xclock`)时。 ### 原因分析 - `xclock` 是一个 X Window System 的图形应用程序。 - 要运行它,必须有一个可用的 X 服务器来显示图形界面。 - 错误中的 `localhost:10.0` 表示程序尝试连接到本地显示设备 `:10.0`,但失败了。 - 这种情况常见于: - 没有启用 SSH 的 X11 转发; - 本地没有运行 X 服务器(在 Windows 上需要 Xming、VcXsrv 等); - `$DISPLAY` 环境变量被错误设置或未正确配置。 --- ## ✅ 解决方案 ### 方法一:使用 SSH X11 Forwarding(推荐) 确保你通过 SSH 登录时启用了 **X11 转发**。 #### 步骤如下: 1. **本地准备(你的电脑)** - **Linux / macOS**: 天然支持 X11,无需额外软件。 - **Windows**: 安装并启动一个 X 服务器,例如: - [VcXsrv](https://sourceforge.net/projects/vcxsrv/) - [Xming](http://www.straightrunning.com/XmingNotes/) 启动 VcXsrv 时选择 “Multiple windows”,Display number 为 `0`,并勾选 “Disable access control”。 2. **SSH 登录时启用 X11 转发** 使用 `-X` 或 `-Y` 参数: ```bash ssh -X username@your-server-ip # 或更宽松的信任模式 ssh -Y username@your-server-ip ``` 3. **验证 DISPLAY 变量** 登录后检查: ```bash echo $DISPLAY ``` 输出应类似: ``` localhost:10.0 ``` 4. **运行 xclock** ```bash xclock ``` 如果一切正常,你应该能在本地看到 `xclock` 的窗口弹出。 > ⚠️ 注意:如果仍报错 `Can't open display`,请确认: > > - 服务端安装了 `xauth` 工具(Debian/Ubuntu 上用 `sudo apt install xauth`) > - SSH 服务端配置 `/etc/ssh/sshd_config` 中包含: > > ``` > X11Forwarding yes > ``` > > 并重启 SSH 服务: > > ```bash > sudo systemctl restart sshd > ``` --- ### 方法二:手动设置 DISPLAY(不推荐用于新手) 如果你已经知道 X 服务器监听的位置,可以手动导出 DISPLAY: ```bash export DISPLAY=localhost:10.0 xclock ``` 但这通常由 SSH 自动完成。手动设置容易出错,除非你知道确切的显示编号和授权机制(如 MIT-MAGIC-COOKIE)。 --- ### 方法三:使用本地 X 服务器直接连接(高级) 你可以让远程主机直接连接你本机的 X 服务器(需开放网络、风险较高): 1. 在本地运行 X 服务器(如 VcXsrv),允许远程连接。 2. 在远程主机上执行: ```bash export DISPLAY=your-local-ip:0.0 xclock ``` 需要确保防火墙放行,并且 X 服务器允许远程连接(不安全,仅限内网测试)。 --- ## 🛠 示例完整流程(以 Ubuntu 服务器 + Windows 客户端为例) 1. Windows 安装并启动 VcXsrv(监听 :0.0,允许所有连接) 2. 使用 PuTTY 或 MobaXterm 登录远程服务器,启用 X11 转发 3. 或使用命令行 SSH: ```bash ssh -X user@192.168.1.100 ``` 4. 安装必要包(若未安装): ```bash sudo apt update sudo apt install x11-apps # 包含 xclock ``` 5. 运行: ```bash xclock ``` ✅ 成功则会在你 Windows 桌面弹出一个模拟钟表窗口。 --- ## 🔍 常见调试命令 ```bash # 查看 DISPLAY 是否设置 echo $DISPLAY # 检查 xclock 是否存在 which xclock # 查看是否安装了 X 工具集 dpkg -l | grep x11-apps # 测试能否访问 X 服务 xdpyinfo ``` 如果没有安装 `xdpyinfo`,可安装: ```bash sudo apt install x11-utils ``` --- ## ❓总结 | 问题 | 解法 | |------|------| | `Can't open display` | 使用 `-X` 或 `-Y` 启用 SSH X11 转发 | | 缺少 xclock | 安装 `x11-apps` | | Windows 无图形支持 | 安装 VcXsrv/Xming | | 权限拒绝 | 检查 `xauth` 和 SSH 配置 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半生痴狂半生颠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值