Linux apt 命令

Debian/Ubuntu 的 apt:更新索引、装包、查包、清理、held 包与 dpkg。

Beginner
Key Pointsapt update 只更新索引,apt upgrade 才升级已装包;装本地 deb 用 apt install ./x.deb 能自动解依赖。

常用命令

Bash
sudo apt update                # 更新索引(不升级任何包)
sudo apt upgrade -y            # 升级已装包
sudo apt install -y nginx
sudo apt remove nginx
sudo apt purge nginx           # 连配置一起删
sudo apt search nginx
apt show nginx
apt list --installed | grep nginx

update 与 upgrade

CommandDoesChanges packages?
apt updateRefresh package indexNo
apt upgradeUpgrade without removing anythingYes
apt full-upgradeUpgrade, may remove/installYes
apt dist-upgradeAlias of full-upgradeYes

清理

Bash
sudo apt autoremove -y         # 清无用依赖
sudo apt clean                 # 清 /var/cache/apt/archives
sudo apt autoclean
du -sh /var/cache/apt/archives

dpkg 与本地包

Bash
sudo dpkg -i package.deb
sudo apt install -f           # 补装缺失依赖
sudo apt install ./package.deb  # 推荐:直接解依赖

dpkg -l | grep nginx
dpkg -L nginx | head
dpkg -S /usr/sbin/nginx

锁与 held 包

Bash
sudo apt-mark hold nginx       # 禁止升级
sudo apt-mark unhold nginx
apt-mark showhold

# 常见报错:Could not get lock /var/lib/dpkg/lock-frontend
# 说明另一个 apt 在跑,先等;确实卡死再删锁(并确认没有 dpkg 进程)
ps aux | grep -E 'apt|dpkg'
In container images, use apt install -y --no-install-recommends and delete /var/lib/apt/lists/*, or the image grows by tens of MB.

Friends & Partners