如何处理snap占用大量存储空间的情况?

Har*_*arm 8 gnome storage snap

我安装了Ubuntu。我有一个分区磁盘,根/分区为 20 GB,/home分区为 60 GB。我认为这对于 Ubuntu 来说已经足够了,但是 snap 占用了大量的存储空间。

6,9 GiB [###       ] /snap                                                                                                                                                                                                                                          
5,8 GiB [###       ] /usr
3,9 GiB [##        ] /var
2,3 GiB [#         ] /opt
Run Code Online (Sandbox Code Playgroud)

这是/snap文件夹:

1,7 GiB   [##########] /gnome-3-34-1804                                                                                    
1,2 GiB   [#######   ] /gnome-3-28-1804
868,0 MiB [#####     ] /kde-frameworks-5-core18
721,7 MiB [####      ] /postman
653,2 MiB [###       ] /gtk-common-themes
594,0 MiB [###       ] /core
393,8 MiB [##        ] /core20
337,6 MiB [#         ] /core18
293,4 MiB [#         ] /snap-store
238,8 MiB [#         ] /snapd
39,6 MiB  [          ] /canonical-livepatch
4,0 KiB   [          ] /bin
4,0 KiB   [          ]  README
Run Code Online (Sandbox Code Playgroud)

我没有使用 KDE,它似乎是旧版本的 GNOME。我可以删除它吗?

您还有其他腾出空间的想法吗?

Lor*_*eel 9

\n

您还有其他腾出空间的想法吗?

\n
\n

下面有一个脚本(它是我用来对根分区执行一般“春季大扫除”的个人脚本的摘录),它减少了在三个方向上工作的快照的总体大小:

\n
    \n
  1. 减少系统中存储的最大修订数量(snap set system refresh.retain=2脚本行)
  2. \n
  3. 当快照修订超过上一点中定义的最大数量时,清理最旧的修订(while在脚本中循环)
  4. \n
  5. 清理快照缓存目录(rm /var/lib/snapd/cache/*脚本中的命令)
  6. \n
\n
#!/bin/bash\n\n# Error status variables\nSTATUS_OK=0\nSTATUS_ERROR=1\n\n# Color settings\nYELLOW_COLOR="\\033[1;33m"\nRED_COLOR="\\033[0;31m"\nOFF_COLOR="\\033[0m"\n\n# Set English language\nLANG=en_US.UTF-8\n\n# Execute it as root user\nif [ "${USER}" != root ]; then\n  echo -e "${RED_COLOR}ERROR: must be root! Exiting...${OFF_COLOR}"\n  exit "${STATUS_ERROR}"\nfi\n\n# Current status\nUSED_BEFORE="$(df -k / | awk \'NR>1 {print $3}\')"\n\n# snapd revisions clean\nif [ -n "$(command -v snap)" ]; then\n  # shellcheck disable=SC2162\n  read -p "\xe2\x86\x92 Do you want to remove unused snapd revisions? [Y/n] " KEY\n  KEY="${KEY:0:1}" && KEY="${KEY,,}"\n  if [ "${KEY}" = "y" ] || [ "${KEY}" = "" ]; then\n    # remove unused snapd revisions\n    echo "Removing unused snapd revisions..."\n    snap set system refresh.retain=2\n    # shellcheck disable=SC2162\n    snap list --all | awk \'/disabled/ {print $1, $3}\' |\n    while read SNAP_NAME SNAP_REV; do\n      snap remove "${SNAP_NAME}" --revision="${SNAP_REV}";\n    done\n    if [ -d /var/lib/snapd/cache ] && [ -n "$(ls -A /var/lib/snapd/cache)" ]; then\n      rm /var/lib/snapd/cache/*\n    fi\n    echo "Nothing unused to uninstall"\n  else\n    echo "Task skipped"\n  fi\nfi\n\n# Current status\nUSED_AFTER="$(df -k / | awk \'NR>1 {print $3}\')"\n\n# Summary\necho -e "${YELLOW_COLOR}Freed up space: $(( (USED_BEFORE - USED_AFTER)/1024 )) MB${OFF_COLOR}"\nexit "${STATUS_OK}"\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  • 将上面的代码保存在一个文件中,例如snap-cleanup.sh
  • \n
  • 将其放入定义的文件夹中$PATH,例如$HOME/.local/bin
  • \n
  • 使其可执行chmod +x $HOME/.local/bin/snap-cleanup.sh
  • \n
  • 通过调用它sudo bash $HOME/.local/bin/snap-cleanup.sh
  • \n
\n

作为一般考虑因素,大小是快照格式的弱点,因为共享库/依赖项在每个快照内都是“重复的”。如果这对您来说确实是个问题,您可以做的就是使用应用程序的 .deb 版本(来自apt install)而不是 snap 版本。

\n

您也可以完全删除snapd,但请考虑到,对于 Ubuntu 的 GNOME 变体,作为 snap 分发的软件包数量正在增加,对于其中一些软件包,决定不是由 Canonical 而是由软件包分发者本身做出的(例如,Mozilla for火狐浏览器)。将来删除snapd可能不会无害。

\n


Art*_*ild 1

我认为现在 20 GB 对于 Ubuntu 桌面来说是不够的 - 这会给你留下很少的空间用于应用程序。

快照占用大量空间,Gnome 桌面以及其他几个应用程序默认包含为快照。

为了确定起见,我不会推荐任何小于 100 GB 的桌面安装,除非您想花额外的时间修补和优化磁盘空间。

对于您的其他问题:是的,您应该能够毫无问题地gnome-3-28-1804删除。kde-frameworks-5-core18