[Bug Report] 安装了flatpak之后导致的命令补全问题
Tofloor
poster avatar
MeGusta
deepin
2026-02-01 21:11
Author

环境:

1.Deepin25系统上有两个账户,一个是系统安装时的管理员A,另一个是日常使用的普通账户B。

2.在安装了玲珑pica之后,依赖包flatpak也被安装。

此时的问题是,在使用普通用户B之后,在终端用su切换到管理员A,使用命令补全的时候,就会显示如下错误:

示例是,我想执行命令补全 sudo apt remove distrobox

sudo remove distrterminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'
  what():  filesystem error: status: Permission denied [/home/gisadmin/.local/share/flatpak/exports/share]
terminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'
  what():  filesystem error: status: Permission denied [/home/gisadmin/.local/share/flatpak/exports/share]
terminate called after throwing an instance of 'std::filesystem::__cxx11::filesystem_error'

这个问题存在了很长时间,我也在深度之家报bug了,但是没有得到回应,后来因为忙,就没理会这个事情了。

今天又遇到这个问题了,尝试着卸载了 flatpak,竟然恢复正常了。。。副作用是pica也随之卸载了。

再尝试用普通用户创建那个报错目录:mkdir -p $HOME/.local/share/flatpak/exports/share,然后再重新安装pica,报错居然也消失了。

为啥正常地按tab补全,会与 $HOME/.local/share/flatpak/exports/share不存在有关???

更新:20260205
问题来源:flatpak在安装的时候,在引入了一个脚本 /etc/profile.d/flatpak.sh,这个脚本会在系统变量 $XDG_DATA_DIRS中引入faltpak的sahre路径。

此时用户为A ,例如 $HOME_USERA/.local/share/flatpak/exports/share

在使用su切换用户B之后,由于用户B对用户A的主目录没有访问权限,就会导致持续弹出路径不可访问的错误。

解决方案:删除 /etc/profile.d/flatpak.sh,在 ~/.bashrc里面手动添加flatpak的share路径:

export XDG_DATA_DIRS=$HOME/.local/share/flatpak/exports/share:$XDG_DATA_DIRS
Reply Favorite View the author
All Replies

No replies yet