在服务器上安全使用 APT

四个命令不是一回事

sudo apt update
sudo apt upgrade
sudo apt full-upgrade
sudo apt autoremove

推荐的查看流程

sudo apt update
apt list --upgradable
sudo apt upgrade --dry-run

重点关注:linux-imagelibc6opensslsystemdopenssh-servernginxmysql-serverredis-server、Docker 和运行时。必要时阅读:

apt changelog nginx
apt-cache policy nginx

为什么不默认加 -y

-y 自动回答确认,但升级中仍可能出现配置文件选择、服务重启或错误。新人应该先看到升级数量、下载量、删除项和关键包;自动化升级则需要经过设计、监控和回滚,而不是简单附加 -y

只升级指定包与临时锁定

sudo apt install --only-upgrade nginx
sudo apt-mark hold mysql-server
apt-mark showhold
sudo apt-mark unhold mysql-server

锁定只是延后升级,不应永久逃避安全更新。记录原因、负责人和解除条件。

升级后检查

systemctl --failed
test -f /var/run/reboot-required && cat /var/run/reboot-required.pkgs
grep -E ' upgrade | install | remove ' /var/log/dpkg.log

随后验证 Nginx、PM2、数据库、磁盘、日志和真实业务入口。内核更新通常在重启后才生效;重启也必须安排窗口。

配置文件提示

APT 可能询问保留本地配置还是采用维护者版本。不要盲选:先查看差异,保留当前可用配置并在测试环境合并新模板通常更稳妥。