ubuntu无法进入桌面的一种情况
问题描述
系统环境:

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

起初我认为是xdroid-server出毛病了,但是后来发现它无法启动,于是尝试使用startx来寻找错误。
tty如何进入
在锁屏页面使用Ctrl+Alt+F4,即可进入tty。
进入后输入用户名和用户密码。
进入startx进行debug
登陆好后使用startx进入。
后续操作使用tty执行startx展现。
大量的.desktop无法打开
执行code竟然出现Node.js的报错

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

指定解释器:

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

成功打开:

发现了Node.js
观察到VScode的解释器是/usr/bin/env sh
为什么不是/bin/sh或者/usr/bin/sh呢?
于是我尝试运行了/usr/bin/env发现!:

我天呢?这是什么道理?
问题解决
综上所述,我认为是/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/env被Node.js覆写了,导致大量依赖于/bin/env寻找环境的批处理无法运行,这才导致了桌面无法打开。
debug期间我干了:
重装显卡驱动
卸载nodejs
删除所有与nodejs有关的文件
重装gnome
切换内核
修改用户权限
修改profile、~/.bashrc、/etc/environment……
本文来自博客园,作者:zhywyt,转载请注明原文链接:https://www.cnblogs.com/zhywyt/p/18153139

浙公网安备 33010602011771号