问题:
将我的一台虚拟机从 Ubuntu 16.04 升级到 Ubuntu 18.04 后,我在 VNC 服务器上遇到各种 GUI 问题。
注意:我能够升级另一个虚拟机,它是同一台机器的 1 年前的克隆,没有任何问题。
- ubuntu-mono-dark 图标不起作用。 Pixbuff 加载器缓存失败并出现错误:
/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so 的 g_module_open() 失败:/usr/lib/x86_64-linux-gnu/libxcb-shm.so .0:未定义符号:xcb_send_request_with_fds
更新:经过几天的处理,我终于能够通过在升级之前运行以下命令来解决这个问题:
apt --reinstall install libxcb1
apt --reinstall install libxcb-shm0
apt --reinstall install libgdk-pixbuf2.0-0
apt -y install libgdk-pixbuf2.0-dev
gdk-pixbuf-query-loaders --update-cache
apt -y purge g++-5
dconf reset -f /org/gnome/
apt autoremove
- Nautilus 需要很长时间才能加载,最终超时并出现错误:
gnome-session[11721]:gnome-session-binary[11721]:警告:应用程序“nautilus-classic.desktop”在超时之前无法注册
gnome-session-binary[11721]:所需组件 nautilus-classic.desktop 出现不可恢复的故障
gnome-session[11721]:gnome-session-binary[11721]:严重:我们失败了,但失败鲸鱼已经死了。对不起....
metacity[11983]:用于选择焦点窗口的CurrentTime;焦点窗口可能不正确。
内核:[236.762533] rfkill:启用输入处理程序
当发生这种情况时,一些程序(例如终端和 MySQL Workbench)会神秘地失去标题栏以及最小化、最大化和关闭按钮。这些程序也会在屏幕的左上角开始打开。移动某些受影响程序(例如 MySQL Workbench)的窗口也变得不可能。
我尝试过的:
使用以下命令完全重新安装 gnome、metacity、nautilus 和 vncserver:
apt -y purge ubuntu-desktop ubuntu-gnome-desktop gnome-core gnome-panel gnome-terminal gnome-settings-daemon metacity nautilus autocutsel vnc4server
apt autoremove
apt -y purge *desktop* *gnome* *metacity* *nautilus*
apt autoremove
rm -vr .cache/tracker .config/nautilus .config/gnome-session .config/gtk* .gconf .gvfs .vnc .Xauthority
reboot
apt -y install ubuntu-desktop ubuntu-gnome-desktop gnome-core gnome-panel gnome-terminal gnome-settings-daemon metacity nautilus autocutsel vnc4server
我做了很多其他小事情,包括重新安装 snap 包和更改 VNC 服务器配置,但没有任何效果。
VNC服务器配置:
#!/bin/bash
unset DBUS_SESSION_BUS_ADDRESS
xsetroot -solid grey
vncconfig -nowin &
autocutsel -fork
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
export XDG_MENU_PREFIX="gnome-flashback-"
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &
建议?
答案1
天哪,当我写着发帖,等待机器第n次升级时,标题栏缺失的问题突然消失了……
尽管每当我重新启动系统并启动 vncserver 的新实例时,它仍然会发生。
看来我必须杀死 vncserver 并重新启动它一次才能开始正常工作。此后 Nautilus 不会超时。
更新:丢失标题栏的事情最近又开始发生。我推测该问题一定程度上可能与系统启动后VNC Server启动过早有关。我为启动 VNC 服务器的 systemd 服务创建了一个延迟 5 分钟的 .timer。从那以后就没有出现过任何问题。