怎样瘦身Ubuntu

2025年4月11日 | 分类: 【技术】

清理 root:

参考:https://www.f11.cn/os/ubuntu/20806.html
参考:https://blog.csdn.net/comway_Li/article/details/103474855

卸载无用软件:

批量:

sudo apt remove --purge 2048-qt* && sudo apt remove --purge okular* && sudo apt remove --purge featherpad* && sudo apt remove --purge screengrab* && sudo apt remove --purge imagemagick* && sudo apt remove --purge skanlite* && sudo apt remove --purge vlc* && sudo apt remove --purge pulseaudio* && sudo apt remove --purge pavucontrol* && sudo apt remove --purge lximage-qt* && sudo apt remove --purge usb-creator* && sudo apt remove --purge zutty* && sudo apt remove --purge qps* && sudo apt remove --purge quassel* && sudo apt remove --purge vim* && sudo apt remove --purge picom* && sudo apt remove --purge noblenote* && sudo apt remove --purge transmission* && sudo apt remove --purge partitionmanager* && sudo apt remove --purge kcalc* && sudo apt remove --purge texinfo* && sudo apt remove --purge qpdfview*
sudo apt autoremove
sudo apt autoclean

单个:

sudo apt remove --purge 2048-qt* -y
sudo apt remove --purge okular* -y
sudo apt remove --purge featherpad* -y
sudo apt remove --purge libreoffice* -y
sudo apt remove --purge screengrab* -y
sudo apt remove --purge imagemagick* -y
sudo apt remove --purge skanlite* -y
sudo apt remove --purge vlc* -y
sudo apt remove --purge pulseaudio* -y
sudo apt remove --purge pavucontrol* -y
sudo apt remove --purge lximage-qt* -y
sudo apt remove --purge usb-creator* -y
sudo apt remove --purge zutty* -y
sudo apt remove --purge qps* -y
sudo apt remove --purge quassel* -y
sudo apt remove --purge vim* -y
sudo apt remove --purge picom* -y
sudo apt remove --purge noblenote* -y
sudo apt remove --purge transmission* -y
sudo apt remove --purge partitionmanager* -y
sudo apt remove --purge kcalc* -y
sudo apt remove --purge texinfo* -y
sudo apt remove --purge qpdfview* -y
sudo snap remove firefox
sudo apt autoremove
sudo apt autoclean

清除 systemd 日志记录:

Ubuntu 中,也有内核日志数据、系统日志消息以及各种服务的标准输出和错误信息。这种日志记录机制,可以帮助排查系统中发生的情况。

检查日志的大小:

journalctl --disk-usage

清除超过一定天数的旧日志:

sudo journalctl --vacuum-time=3d

输出:

Vacuuming done, freed 3.8G of archived journals from /var/log/journal/a21e7ebb86158cd2b9fc6dbf9df2c6bc.
Vacuuming done, freed 0B of archived journals from /var/log/journal.

清理 Nginx 日志:

确定日志位置:

nginx -T | grep -E 'access_log|error_log'

输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
                        error_log /dev/null;
                        access_log /dev/null;

直接删除即可。

清理 MySQL 日志:

登录 MySQL 执行 FLUSH LOGS; :

mysql -u root -p -e "FLUSH LOGS;"

清理 xrdp 日志:

停止 xrdp 服务:

sudo systemctl stop xrdp

清空日志文件:

sudo cp /dev/null /var/log/xrdp.log

安全地识别并移除 Ubuntu 及其衍生版中的非必要软件包:

这是最关键也最需要谨慎的一步。移除任何软件包前,请务必确认其用途,避免误删系统关键组件

  • 使用 ubuntu-debloater 脚本(推荐):这是一个社区维护的自动化脚本,能帮你安全地识别并移除 Ubuntu 及其衍生版中的非必要软件包。
    1. 克隆并进入脚本目录:
      git clone https://github.com/lucasgab2230/ubuntu-debloater.git && cd ubuntu-debloater
    2. 赋予执行权限并运行:
      chmod +x debloat.sh && sudo ./debloat.sh

      脚本运行时会列出它将移除的软件包列表,并要求你确认。运行前请仔细阅读列表,确保没有你需要的关键软件。

3. 管理后台服务:禁用不需要的自动启动项

许多服务在后台运行,消耗着内存和CPU。你可以禁用它们。

  • 禁用不必要的系统服务:例如,如果你不用蓝牙,可以永久禁用它。

    # 查看所有服务及其状态
    systemctl list-unit-files --type=service
    
    # 禁用并屏蔽蓝牙服务(使其无法被任何操作启动)
    sudo systemctl mask bluetooth.service

移除旧版本的 Snap 应用程序:

Snap 包的大小稍大于同一应用程序的 DEB 包。此外,Snap 还会保存至少两个旧版本的应用程序,用于备用和回滚。这将占用大量磁盘空间。

查看 Snap 存储的大小:

du -h /var/lib/snapd/snaps

Canonical 公司的 Snapcraft 团队成员 Alan Pope 创建了一个小脚本,用于清理所有旧版本的 Snap 应用:

#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
snap list --all | awk '/disabled/{print $1, $3}' |
    while read snapname revision; do
        snap remove "$snapname" --revision="$revision"
    done

执行:

chmod +x remove-snaps.sh
sudo ./remove-snaps.sh

参考:https://www.sysgeek.cn/ubuntu-free-up-space/