CentOS7.6安装图形界面失败,startx执行失败

网上关于CentOS7使用startx命令启动图形界面失败的帖子很多,不过找了一天也没解决我的问题,于是把自己掉坑过程复述一下,然后有爬出来的过程,如果有相似经历的同学可以参考看看能不能爬出坑。

1. 先列举一下问题:

我遇到的问题一共有两个

一个问题是在启动桌面程序的时候,即startx时,报:

[root@localhost vmware-tools-distrib]# startx
xauth:  file /root/.serverauth.1729 does not exist

xinit: unable to run server "/usr/bin/X": No such file or directory
Use the -- option, or make sure that /usr/bin is in your path and
that "/usr/bin/X" is a program or a link to the right type of server
for your display.  Possible server names include:

    Xorg        Common X server for most displays
    Xvfb        Virtual frame buffer
    Xfake       kdrive-based virtual frame buffer
    Xnest       X server nested in a window on another X server
    Xephyr      kdrive-based nested X server
    Xvnc        X server accessed over VNC's RFB protocol
    Xdmx        Distributed Multi-head X server

^Cxinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: unexpected signal 2

这个错在网上经过搜索后,他会告诉你安装或者重新安装Xorg-x11-server-Xorg,命令如下:

yum install xorg-x11-server-Xorg

安装成功后,再次执行startx,会报下边这个错,也是第二个问题。
第二个问题:

[root@localhost ~]# startx
xauth:  file /root/.serverauth.1814 does not exist


X.Org X Server 1.20.1
X Protocol Version 11, Revision 0
Build Operating System:  3.10.0-957.1.3.el7.x86_64
Current Operating System: Linux localhost.localdomain 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64
Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-957.27.2.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: 29 July 2019  05:38:01PM
Build ID: xorg-x11-server 1.20.1-5.6.el7_6
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: Sat Aug 31 06:05:16 2019
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
gbm: failed to open any driver (search paths /usr/lib64/dri)
gbm: Last dlopen error: /usr/lib64/dri/vmwgfx_dri.so: cannot open shared object file: No such file or directory
failed to load driver: vmwgfx
gbm: failed to open any driver (search paths /usr/lib64/dri)
gbm: Last dlopen error: /usr/lib64/dri/kms_swrast_dri.so: cannot open shared object file: No such file or directory
failed to load driver: kms_swrast
gbm: failed to open any driver (search paths /usr/lib64/dri)
gbm: Last dlopen error: /usr/lib64/dri/swrast_dri.so: cannot open shared object file: No such file or directory
failed to load swrast driver
...

这个错网上给的答案就千奇百怪了,搜了好久都没有解决。有的同学可能也遇到过类似的错误或者相同的错误,这个问题出现的根本原因,我也不清楚,不过我复现了一下这个错误,找到了我遇到这个错误的原因,可能这个原因也是其他人无法启动图形界面的原因。可以作为一个参考

2. 我的复现过程

我是按照下边这个过程掉坑里的:

  • 我使用CentOS官方的Minimal镜像做了最小化安装,使用的就是这个版本CentOS-7-x86_64-Minimal-1810.iso
  • 然后我连上了网上的源,做了更新,用的是163的源163-centos7.6-mirror
  • 然后我想安装图形界面了,我在CentOS7官网下载了Everything的ISO,使用的是清华的镜像源下载的
  • 我将iso作为光盘挂载到了虚拟机里面/mnt目录下,同时使用下边的配置引用光盘中的文件作为源进行安装
    [root@localhost ~]# cat /etc/yum.repos.d/bak/local.repo
    [LocalRepo]
    name=Local Repository
    baseurl=file:///mnt
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
  • 安装使用的命令是:
    yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
    
    然后就报了一些错,是我已经安装的软件包版本高于当前要安装的软件包版本,我也没有在意,直接加了个参数调过了,如下:
    yum groupinstall "GNOME Desktop" "Graphical Administration Tools" --skip-broken
    
    安装显示需要装的软件包大小大约165MB,这里和网上很多帖子提示说的是700MB不同,因为使用的是Everything的镜像,所以软件包比较少。
  • 安装完之后运行startx就无法启动了,出现了1中描述的问题

经过复盘分析,我觉得我安装失败的原因,应该就是中间做过一次update,导致软件包的版本比镜像中的高了很多,所以导致再次使用镜像中的包进行安装的时候,很多依赖的版本就没法自动解决了。强行安装后直接导致启动失败。

3. 修复实验

在遇到这个问题并且能够成功复现后,我进行了两个实验:

  1. 使用Minimal进行安装,不做update,使用Everything进行图形化安装
  2. 重放复现步骤,卸载安装的图形软件,进行修复

上边两个实验,第一个很好做,直接就成功了。说明软件包版本匹配的情况下,应该是可以直接启动图形界面的,所有运行的命令都一样,没有变化。

第二个实验也很好做,重点在于如何修复。因为这一步已经记性了update,升级的软件很多,又不能都回退回去,所以,我想的是直接用互联网的源进行安装图形界面软件。安装后直接运行就成功了。这次安装的包大约需要下载700多MB,和网上帖子里说的也比较一致。

4. 确定修复方案

通过3步骤的实验,确定采用3步骤中的第二个实验中的结论来进行修复。由于问题出现的环境是离线环境,所以需要采用离线方案进行软件安装。
离线安装有两种方式:

  • 将桌面安装的包下载下来,做成镜像源
  • 将163的源仓库下载下来,做成镜像源

你可能感兴趣的:(linux)