解决 Linux apt 进程锁排队报错

报错现象:

E: Could not get lock /var/lib/apt/lists/lock. It is held by process xxxxx (apt-get)

排查与解决:

1. 识别占用进程

Bash

1
2
# 查看报错信息中的 PID 到底是什么进程
ps -fp <PID>

通常是 unattended-upgrades(自动更新)在后台运行。

2. 强制解锁步骤(按顺序执行)

如果确定没有其他重要的安装任务,可以强行清理:

Bash

1
2
3
4
5
6
7
8
9
10
11
# 1. 杀掉占用进程
sudo kill -9 <PID>

# 2. 强制删除所有锁文件
sudo rm /var/lib/apt/lists/lock
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock

# 3. 修复损坏的软件包状态
sudo dpkg --configure -a

3. 预防措施

如果你希望手动控制更新,不希望被后台锁住,可以禁用自动检查更新:

Bash

1
2
sudo dpkg-reconfigure -plow unattended-upgrades
# 在交互界面选择 "No"