ubuntu无法进入桌面的一种情况

问题描述

系统环境:
image

  • 无法进入桌面
  • 可以进入锁屏
  • 输入密码后黑屏,并返回锁屏
  • tty能进入startx
  • startx中部分软件无法打开
    无法进入桌面最直接的错误,非常严重不可原谅。用户登陆输入密码,黑屏,然后回到用户登陆。

误导我的一个报错:

image
起初我认为是xdroid-server出毛病了,但是后来发现它无法启动,于是尝试使用startx来寻找错误。

tty如何进入

在锁屏页面使用Ctrl+Alt+F4,即可进入tty
进入后输入用户名和用户密码。

进入startx进行debug

登陆好后使用startx进入。
后续操作使用tty执行startx展现。

大量的.desktop无法打开

执行code竟然出现Node.js的报错

image

打开code可以看到顶部的解释器选择,如果直接指定解释器,发现能够打开VSCode,说明不是可执行文件的错误。

image

指定解释器:

image

如果去掉code中的指定解释器行:

image

成功打开:

image

发现了Node.js

观察到VScode的解释器是/usr/bin/env sh

为什么不是/bin/sh或者/usr/bin/sh呢?

于是我尝试运行了/usr/bin/env发现!:

image

我天呢?这是什么道理?

问题解决

综上所述,我认为是/bin/env和/usr/bin/env被NodeJs覆写了,于是我决定删除/bin/env,然后重装coreutils问题解决:

sudo rm /bin/env
sudo apt reinstall coreutils

另外因为安装了gnome-tweaks和原来的某些东西有冲突,卸载后恢复原状:

sudo apt remove gnome-tweaks 
reboot

总结

这是一个非常奇怪的问题,因为我的/bin/envNode.js覆写了,导致大量依赖于/bin/env寻找环境的批处理无法运行,这才导致了桌面无法打开。
debug期间我干了:

重装显卡驱动

卸载nodejs

删除所有与nodejs有关的文件

重装gnome

切换内核

修改用户权限

修改profile、~/.bashrc、/etc/environment……

posted @ 2024-04-23 16:21  zhywyt  阅读(227)  评论(0编辑  收藏  举报