我安装了 Ubuntu。我有一个分区磁盘,其中根/
分区为 20 GB,/home
分区为 60 GB。我以为这对于 Ubuntu 来说已经足够了,但是 snap 占用了大量的存储空间。
6,9 GiB [### ] /snap
5,8 GiB [### ] /usr
3,9 GiB [## ] /var
2,3 GiB [# ] /opt
这是/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
我没有使用 KDE,它似乎是 GNOME 的旧版本。我可以删除它吗?
您对腾出空间还有其他想法吗?
答案1
您对腾出空间还有其他想法吗?
下面有一个脚本(它是从我用来对根分区进行常规“春季大扫除”的个人脚本中提取的),它可以从三个方向减少快照的整体大小:
- 减少系统中存储的最大修订数量(
snap set system refresh.retain=2
脚本行) - 当您的快照修订超过上一点定义的最大数量时,清理最旧的修订(
while
脚本中的循环) - 清理快照缓存目录(
rm /var/lib/snapd/cache/*
脚本中的命令)
#!/bin/bash
# Error status variables
STATUS_OK=0
STATUS_ERROR=1
# Color settings
YELLOW_COLOR="\033[1;33m"
RED_COLOR="\033[0;31m"
OFF_COLOR="\033[0m"
# Set English language
LANG=en_US.UTF-8
# Execute it as root user
if [ "${USER}" != root ]; then
echo -e "${RED_COLOR}ERROR: must be root! Exiting...${OFF_COLOR}"
exit "${STATUS_ERROR}"
fi
# Current status
USED_BEFORE="$(df -k / | awk 'NR>1 {print $3}')"
# snapd revisions clean
if [ -n "$(command -v snap)" ]; then
# shellcheck disable=SC2162
read -p "→ Do you want to remove unused snapd revisions? [Y/n] " KEY
KEY="${KEY:0:1}" && KEY="${KEY,,}"
if [ "${KEY}" = "y" ] || [ "${KEY}" = "" ]; then
# remove unused snapd revisions
echo "Removing unused snapd revisions..."
snap set system refresh.retain=2
# shellcheck disable=SC2162
snap list --all | awk '/disabled/ {print $1, $3}' |
while read SNAP_NAME SNAP_REV; do
snap remove "${SNAP_NAME}" --revision="${SNAP_REV}";
done
if [ -d /var/lib/snapd/cache ] && [ -n "$(ls -A /var/lib/snapd/cache)" ]; then
rm /var/lib/snapd/cache/*
fi
echo "Nothing unused to uninstall"
else
echo "Task skipped"
fi
fi
# Current status
USED_AFTER="$(df -k / | awk 'NR>1 {print $3}')"
# Summary
echo -e "${YELLOW_COLOR}Freed up space: $(( (USED_BEFORE - USED_AFTER)/1024 )) MB${OFF_COLOR}"
exit "${STATUS_OK}"
- 将上述代码保存在文件中,例如
snap-cleanup.sh
- 将其放在定义的文件夹中
$PATH
,例如$HOME/.local/bin
- 使其可执行
chmod +x $HOME/.local/bin/snap-cleanup.sh
- 通过以下方式调用
sudo bash $HOME/.local/bin/snap-cleanup.sh
总体而言,大小是 snap 格式的弱点,因为共享库/依赖项在每个 snap 中都是“重复的”。如果这对你来说确实是一个问题,你可以做的是使用应用程序的 .deb 版本(来自apt install
)而不是 snap 版本。
您也可以完全删除snapd
,但请考虑,对于 Ubuntu 的 GNOME 版本,以 snap 形式分发的软件包数量正在增加,并且其中一些软件包的决定不是由 Canonical 做出的,而是由软件包分发者自己做出的(例如,Firefox 的 Mozilla)。将来,删除snapd
可能并非无害。
答案2
我认为 20 GB 对于目前的 Ubuntu 桌面来说已经不够了 —— 这会给你留下很少的空间来安装应用程序。
Snap 占用大量空间,默认情况下 Gnome 桌面以及其他几个应用程序都包含在 Snap 中。
为了确保安全,我不会建议桌面安装少于 100 GB 的空间,除非您愿意花费额外的时间来调整和优化磁盘空间。
对于您的其他问题:是的,您应该能够删除gnome-3-28-1804
,并且kde-frameworks-5-core18
不会出现任何问题。