0

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

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

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

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

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

所以我怀疑我的问题是 snapd 目录被列出了 3 次,并且用空格分隔

有谁知道我该如何解决这个问题?我怀疑,但不确定这是问题所在。

我在Ubuntu 20.04上,使用鱼壳

我发现这篇文章显示了一个可能的解决方案,并且在运行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

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

4

3 回答 3

2

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

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

于 2022-02-12T14:06:58.287 回答
1

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

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

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

于 2022-02-17T10:34:38.490 回答
0

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

TLDR:我的快速修复/解决方法是chsh -s /bin/bash切换到 bash 作为登录 shell(而不是 fish)并重新启动。

于 2022-02-11T23:19:43.717 回答