如何删除Flatpak应用程序的文件?

我使用了以下形式的命令安装了一个应用程序:
flatpak --user install -y --app --bundle "$DIR/Suphead.flatpak"

我使用了以下形式的命令来卸载它:
flatpak --user uninstall org.flatpaklinux.Suphead

然而,在卸载之后,我仍然在系统中看到许多与该应用程序相关联的文件,这些文件位于以下所有类型的目录中:
~/.local/share/flatpak/repo/refs/remotes/org.flatpaklinux.Suphead-origin
~/.local/share/flatpak-linux/Suphead
~/.local/share/flatpak-linux/Suphead/drive_c
~/.var/app/org.flatpaklinux.Suphead

Flatpak不应该删除这些目录及其内容吗?我只需要在它们上面执行rm -rf命令吗?
3个回答

通常,软件包管理工具会保留在主目录中的文件,以便在重新安装时保留用户偏好等信息。如果您希望,您可以选择删除这些文件,但我不会期望flatpak(或任何其他软件安装工具)删除我主目录中的配置文件。根据flatpak维基百科示例,这就是~/.var/app的作用。
.var/
└── app
    └── org.gnome.GEdit
        ├── data
        ├── config
        └── cache
~/.local/share/flatpak/repo/refs/remotes/org.flatpaklinux.Suphead-origin 看起来像是 flatpak 的一部分,它可能用来跟踪已安装的内容以及其来源(即使在卸载软件包后,此类数据通常仍会保留,并且它们不占用太多空间)。根据 flatpak 维基百科的说明:

Flatpak 使用 OSTree 来分发和管理应用程序和运行时环境。上述目录中的 repo/ 是本地 OSTree 存储库。Flatpak 通过符号链接将应用程序和运行时环境的 active/ 目录创建为 OSTree 检出的副本(位于同一目录中)。使用 OSTree 的优势在于,检出副本会自动进行去重并共享磁盘空间,因为 OSTree 使用硬链接和基于内容的寻址。如果需要,OSTree 还可以轻松回滚到早期版本。

refs/remotes/org.flatpaklinux.Suphead-origin 看起来非常像 Git 存储库中的某个内容。
$ cat .git/refs/remotes/origin/master
73dad27c1c047c159f0ee22d6627af5bfdf4dbfc

如果确实是这种情况,那么该文件只是指示了你上次从远程源获取内容时的提交版本。
如果你认为Flatpak在删除应用程序后仍占用太多空间,请检查flatpak list -d --app --runtime的输出,以查看仍安装的应用程序和运行时以及它们占用的空间。

2嘿,谢谢你提供的解决方案,以及对Flatpak存储方式的详细描述。 - BlandCorporation

此处所提到的,
flatpak uninstall --delete-data  # Delete app data

将删除仍留在~/.var/app中的已卸载应用程序数据。

默认情况下,将为每个应用程序询问:删除Application_ID的数据?[y/n]:



4这是用来移除未使用的应用程序,而不是用于卸载应用程序后剩余的文件。 - v_sukt