"show applications"、Ubuntu 20.04 中未显示 Snap 应用程序

Snap applications not showing in "show applications", Ubuntu 20.04

昨天,在 Ubuntu(或者戴尔)安装了一些更新并重新启动后,我的 snap 应用程序没有显示在我的侧边栏上,也没有出现在“显示应用程序”或正常搜索中。

它们仍然安装并且 snap list 仍然显示它们,并且它们仍然 运行 通过 snap run <application>

我试过全部卸载它们(尽管我在 运行 snap remove <application> 时没有使用 --purge),然后卸载 snap 本身,然后重新安装所有内容。他们仍然存在,但没有出现。

更多搜索将我带到了引用 XDG_DATA_DIRS 环境变量(解释为 HERE)的站点。如果我理解正确,这应该 link 所有存储应用程序的文件夹,并且其中的路径应该用冒号分隔,而不是空格。因此,我 运行 echo $XDG_DATA_DIRS 得到了奖励:

/usr/local/share/:/usr/share/:/var/lib/snapd/desktop /var/lib/snapd/desktop /var/lib/snapd/desktop

所以我怀疑我的问题是 snapd 目录被列出三次它是以空格分隔.

有人知道我该如何解决这个问题吗?我怀疑,但不确定是否是这个问题。

我在 Ubuntu 20.04,使用 fish shell.

我发现 THIS post 显示了一个可能的解决方案,在 运行 宁 sudo ag "XDG_DATA_DIRS=" / 2>/dev/null | grep -v snap (并等待一段时间)后,我得到了以下输出(减去我删除了一些 auth.log 参考资料)为大的、可能不敬的“数据转储”道歉

/etc/profile.d/xdg_dirs_desktop_session.sh:4:DEFAULT_XDG_DATA_DIRS='/usr/local/share/:/usr/share/'
/etc/profile.d/xdg_dirs_desktop_session.sh:18:       XDG_DATA_DIRS="$DEFAULT_XDG_DATA_DIRS"
/etc/profile.d/xdg_dirs_desktop_session.sh:21:       XDG_DATA_DIRS=/usr/share/"$DESKTOP_SESSION":"$XDG_DATA_DIRS"
/etc/profile.d/apps-bin-path.sh:12:    export XDG_DATA_DIRS="/usr/local/share:/usr/share"
/etc/X11/Xsession.d/55gnome-session_gnomerc:17:      XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/
/etc/X11/Xsession.d/55gnome-session_gnomerc:19:      XDG_DATA_DIRS=/usr/share/gnome:"$XDG_DATA_DIRS"
/etc/X11/Xsession.d/60x11-common_xdg_path:5:DEFAULT_XDG_DATA_DIRS='/usr/local/share/:/usr/share/'
/etc/X11/Xsession.d/60x11-common_xdg_path:17:       XDG_DATA_DIRS="$DEFAULT_XDG_DATA_DIRS"
/etc/X11/Xsession.d/60x11-common_xdg_path:20:       XDG_DATA_DIRS=/usr/share/"$DESKTOP_SESSION":"$XDG_DATA_DIRS"
/usr/share/doc/gnome-software/README.md:24:$ XDG_DATA_DIRS=install/share:$XDG_DATA_DIRS ./install/bin/gnome-software

我不确定我是否找到了考虑更新环境变量的正确位置,因为 none 引用了 /var/lib/snaped/desktop...这可能不是导致根本问题!欢迎任何帮助!

我也遇到了同样的问题(Firefox 突然在 Gnome 中消失了 Shell),我正在使用 Ubuntu 21.10 和 fish shell。就像你一样,我无法弄清楚是什么导致了这个 XDG_DATA_DIRS 以空格分隔的修改。因为你显然也使用 fish 我尝试切换回 bash 作为登录名 shell (chsh -s /bin/bash),重新启动,瞧,桌面文件再次加载。之后,我将 fish 设置为 gnome-terminal.

中开始的命令

TLDR:我的 quickfix/workaround 是 chsh -s /bin/bash 切换到 bash 登录 shell(而不是 fish)并重新启动。

您 运行 https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1957948 需要在 snapd 中进行修复。

使用不同的 shell 作为您的登录 shell,然后在 fish 启动后执行它,是正确的解决方法。

在关注 Zanchy 的链接并阅读相关问题后,我找到了解决方案 here!!!

我需要更换 set XDG_DATA_DIRS $XDG_DATA_DIRS $snap_xdg_pathset XDG_DATA_DIRS $XDG_DATA_DIRS:$snap_xdg_path/usr/share/fish/vendor_conf.d/snapd.fish

更新:在另一次更新后我发现我的 snaped.fish 文件已经恢复,我需要再次编辑它 - 所以这个解决方案可能需要 re-applied 直到 fish 更新它的快照?