Linux apt 命令
Debian/Ubuntu 的 apt:更新索引、装包、查包、清理、held 包与 dpkg。
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 nginxupdate 与 upgrade
| Command | Does | Changes packages? |
|---|---|---|
apt update | Refresh package index | No |
apt upgrade | Upgrade without removing anything | Yes |
apt full-upgrade | Upgrade, may remove/install | Yes |
apt dist-upgrade | Alias of full-upgrade | Yes |
清理
Bash
sudo apt autoremove -y # 清无用依赖
sudo apt clean # 清 /var/cache/apt/archives
sudo apt autoclean
du -sh /var/cache/apt/archivesdpkg 与本地包
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.常用命令
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 nginxupdate 与 upgrade
| 命令 | 作用 | 会改包吗 |
|---|---|---|
apt update | 刷新包索引 | 不会 |
apt upgrade | 升级但不删包 | 会 |
apt full-upgrade | 升级,可能增删包 | 会 |
apt dist-upgrade | 同 full-upgrade | 会 |
清理
Bash
sudo apt autoremove -y # 清无用依赖
sudo apt clean # 清 /var/cache/apt/archives
sudo apt autoclean
du -sh /var/cache/apt/archivesdpkg 与本地包
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'容器镜像里
apt install 要加 -y --no-install-recommends 并删 /var/lib/apt/lists/*,否则镜像会大出几十 MB。