有谁知道为什么 at 目录$HOME/.local/share/flatpak/repo包含如此多的文件(69 k)并且如此巨大(2 Gb)?那是什么 ?反正我几乎从不使用 flatpaks....
我想在备份中包含 flatpak 目录并不重要(deja-dup)。
PS 看起来里面有硬链接,因为 flatpak 文件夹的文件数量是原来的两倍,但总大小相同。
Lor*_*eel 13
Flatpak包在沙盒模式下运行:因此,根据设计,Flatpak 会为单个应用程序占用大量磁盘空间,即使它是较小的应用程序,因为它会提取应用程序的所有依赖项并独立运行。这种设计的优点是您无需担心系统的依赖关系和更新可能会破坏您的应用程序。然而,它占用了大量的磁盘空间。
因此,用户唯一能做的就是监控 Flatpak 大小并执行定期清洁。就我个人而言,我有一个名为“spring-cleaning”的脚本,我定期使用它来执行系统清理(其中有一个与 flatpak 相关的部分)。
通用清理
flatpak list --app --columns=application,runtime列出哪个应用程序使用哪个运行时),您可以使用 删除它flatpak uninstall --unused。这是一次清理,在您第一次运行时可能会产生很大的效果,但正如您可以想象的那样,第一次使用后清理可能并不重要。/var/lib/flatpak/repo/objects文件夹中创建对象,这些对象可能会达到相当大的大小。要修剪这些对象(没有对其应用程序的显式引用),您需要运行(使用sudo,因为您正在清理系统文件夹中的对象)sudo flatpak repair。每次运行该命令时,此清理的影响可能会很大。sudo rm -rfv /var/tmp/flatpak-cache-*并rm -rfv ~/.cache/flatpak/*具体清理
flatpak --columns=name,size --user list,然后使用应用程序名称卸载应用程序flatpak uninstall <flatpak_app_name>合并到脚本中(使用 sudo 运行)
#!/bin/bash
# Error status variables
STATUS_OK=0
STATUS_ERROR=1
# Definitions
USER_NAME="${SUDO_USER:-${USER}}"
USER_DIR="/home/${USER_NAME}"
# Execute it as root user
if [ "${USER}" != root ]; then
echo "ERROR: must be root! Exiting..."
exit "${STATUS_ERROR}"
fi
# Current status
USED_BEFORE="$(df -k / | awk 'NR>1 {print $3}')"
# flatpak cleanup
if [ -n "$(command -v flatpak)" ]; then
flatpak repair &> /dev/null
# Remove flatpak cache
rm -rf /var/tmp/flatpak-cache-*
sudo -u "${USER_NAME}" rm -rf "${USER_DIR}"/.cache/flatpak/*
# Remove unused flatpak runtimes
if [ -n "$(flatpak list --runtime)" ]; then
flatpak uninstall --unused
fi
fi
# Current status
USED_AFTER="$(df -k / | awk 'NR>1 {print $3}')"
# Summary
echo "Freed up space: $(( (USED_BEFORE - USED_AFTER)/1024 )) MB"
exit "${STATUS_OK}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1188 次 |
| 最近记录: |