首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
Ubuntu/Debian包管理教程:apt、dpkg、apt-cache实战
📅 2026/9/26 14:22:11
✍️ 爱科研究院
👁 阅读 3,247
在 Ubuntu 或 Debian 上装软件你会反复碰到三个名字apt、dpkg、apt-cache。新手容易把它们当成一回事其实分工很清楚——apt 负责联网装包dpkg 负责本地解包apt-cache 负责查仓库索引。这篇把三者的语法、常用参数和配合方式讲透。一、先理清三者分工工具定位能不能联网典型用途apt上层包管理能装、卸、升级软件自动处理依赖apt-cache仓库索引查询只读本地索引搜包、看依赖、看版本dpkg底层解包不能装本地 .deb 文件、查文件归属一句话平时九成操作用 apt要查包的详细信息用 apt-cache手上有个 .deb 文件、或者要排查这个文件是谁装的才轮到 dpkg。二、apt日常主力语法格式apt[选项]子命令[包名...]常用子命令命令作用sudo apt update刷新仓库索引sudo apt upgrade升级所有可升级包sudo apt install 包名安装包sudo apt remove 包名卸载保留配置sudo apt purge 包名卸载并删配置sudo apt autoremove清理不再被依赖的孤儿包apt list --installed列已装包apt edit-sources编辑软件源示例与预期输出示例 1安装 nginxsudoaptupdatesudoaptinstall-ynginx预期输出节选Reading package lists... Done Building dependency tree... Done The following additional packages will be installed: nginx-common nginx-core Suggested packages: fcgiwrap nginx-doc The following NEW packages will be installed: nginx nginx-common nginx-core 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. Need to get 577 kB of archives. ... Setting up nginx-core (1.22.0-1ubuntu1.24) ... Setting up nginx (1.22.0-1ubuntu1.24) ...示例 2卸载并清理sudoaptremove-ynginxsudoaptautoremove-yremove只删主程序配置留在/etc/nginx要连配置一起删用purge。autoremove把当初为了装 nginx 而拉进来、现在没人用的依赖一起清掉。⚠️ 常见错误新装系统直接 install 报 Unable to locate package先sudo apt update。把 update 和 upgrade 搞混update 只更新索引清单不装任何东西。apt和apt-get新脚本用apt输出更友好老文档里的apt-get install照样能跑不必照抄。三、apt-cache查仓库索引apt-cache 不联网它查的是apt update下载到本地的索引文件所以查询速度极快而且不需要 sudo。常用子命令命令作用apt-cache search 关键词按名字和描述搜包apt-cache show 包名看包的版本、依赖、描述apt-cache depends 包名看这个包依赖谁apt-cache rdepends 包名看谁依赖这个包反向依赖apt-cache policy 包名看候选版本和各仓库版本示例与预期输出搜名字带 nginx 的包apt-cachesearch nginx|head-5预期输出nginx - small, powerful, scalable web/proxy server nginx-common - nginx web/proxy server (common files) nginx-core - nginx web/proxy server (core module) nginx-doc - nginx documentation libnginx-mod-http-image-filter - nginx modules看 nginx 依赖谁apt-cachedepends nginx预期输出节选nginx Depends: nginx-core Depends: nginx-common Recommends: libnginx-mod-http-geoiprdepends是反向查询升级某个包前用它看看谁在依赖它避免删了一个公共库导致一片软件挂掉。四、dpkg底层解包工具dpkg 不联网只处理本地 .deb 文件和本地数据库。apt 装包时最后一步就是调 dpkg 把文件解开。常用参数参数作用-i 文件.deb安装本地 .deb-r 包名卸载保留配置-P 包名彻底卸载删配置-l [包名]列出已装包-L 包名列出这个包装了哪些文件-S 文件名反查某个文件属于哪个包--configure -a修复被中断的配置示例与预期输出示例 1从本地 .deb 安装sudodpkg-i./google-chrome-stable_120.0.6099.71-1_amd64.debdpkg 自己不处理依赖缺依赖时会报错。这种情况跑完这条再执行一句sudo apt -f installapt 会把缺的依赖补上sudoapt-finstall示例 2反查文件归属想知道/usr/sbin/nginx这个文件是哪个包装进来的dpkg-S/usr/sbin/nginx预期输出nginx-core: /usr/sbin/nginx示例 3列已装包dpkg-l|grepnginx预期输出节选ii nginx 1.22.0-1ubuntu1.24 amd64 small, powerful, scalable web/proxy server ii nginx-common 1.22.0-1ubuntu1.24 all nginx web/proxy server (common files)每行开头两个字母ii表示已正确安装如果看到iF、iU说明上次安装中途出错了跑sudo dpkg --configure -a修复。五、软件源在哪apt 从哪下包由两个位置决定/etc/apt/sources.list主源配置/etc/apt/sources.list.d/目录里每个.list文件是一个额外仓库。国内服务器默认官方源在国外装软件慢得受不了换清华、阿里、中科大的镜像源就能解决。改完必须sudo apt update才生效。改之前先备份原文件改坏了能退回去。六、知识扩展/var/lib/dpkg 里记了什么dpkg 的本地数据库在/var/lib/dpkg/其中status文件是纯文本记录了每个已装包的状态、依赖、维护者信息Package: nginx Status: install ok installed Priority: optional Section: httpd Architecture: amd64 Version: 1.22.0-1ubuntu1.24 Depends: nginx-core, nginx-commondpkg -l读的就是这个文件。理解这一点两个故障就有思路了装包中途断电导致数据库状态不一致用sudo dpkg --configure -a让它把没跑完的配置流程补完想强制重装某个包sudo apt install --reinstall 包名本质也是重新走一遍 dpkg 的解开和登记流程。另外区分清楚remove和purgeremove 之后/etc/nginx里的配置还在下次再装 nginx 会沿用老配置purge 才是连根拔起。生产服务器上排查为什么我改的配置不生效经常是之前 purge 没做干净。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/9/26 14:22:11
VScode Remote 远程开发与调试:用 TaoToken 统一 Key 打通 settings.json 配置骨架
2026/9/26 14:22:11
基于NIST CSF 2.0的网络安全智能体选型实战指南
2026/9/26 14:22:11
本地AI绘画工作流:用Stable Diffusion+LoRA稳定复现可爱画风
2026/9/26 15:02:14
Claude Code / Codex 的 Skill 配置指南:用 TaoToken 统一 Key 打通 SKILL.md 工作流
2026/9/26 15:02:14
相机标定棋盘格设计与实操规范:OpenCV与Matlab双路径详解
2026/9/26 15:02:14
AI辅助法学论文写作:六环节提示词模板与避坑指南
2026/9/26 15:02:14
Qt Windows打包三步法:windeployqt+Enigma+Inno实战指南
2026/9/26 15:02:14
轴向磁通电机电磁仿真与实测对标:0.3毫米气隙偏差的教训
2026/9/26 14:57:13
WorkBuddy Enterprise:从超级个体到超级团队的Agent编排与治理实践
2026/9/26 0:00:44
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
2026/9/26 0:00:44
【愚公系列】《OpenClaw实战指南》018-写作与整理:用 TaoToken 统一 Key 打通 OpenClaw Skill 周报公文流水线
2026/9/26 0:00:44
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
2026/9/25 5:41:44
深入解析Transformer多头注意力机制与工程优化
2026/9/26 9:34:02
OpenClaw 的 Skills 跑学习任务,模型通道改到 TaoToken 通道行不行?
2026/9/26 9:46:13
ChatGPT报错Oops, an error occurred! 全链路排查指南