新闻详情

新闻详情

首页 / 资讯中心 / 详情

Ubuntu/Debian包管理教程:apt、dpkg、apt-cache实战

发布时间:2026/9/26 14:22:00来源:尧图网络
Ubuntu/Debian包管理教程:apt、dpkg、apt-cache实战
在 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 没做干净。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

WeWrite 3种安装方式实战:Claude Code、Codex、OpenClaw全平台快速上手 2026/9/26 15:00:37

WeWrite 3种安装方式实战:Claude Code、Codex、OpenClaw全平台快速上手

WeWrite 3种安装方式实战:Claude Code、Codex、OpenClaw全平台快速上手 【免费下载链接】wewrite 公众号内容全流程 Skill,从热点抓取到微信草稿箱,一句话跑完整条内容管道 项目地址: https://gitcode.com/gh_mirrors/wew/wewrite WeW…

阅读更多 →
DB2 V11.1安装实战:从下载到实例创建与Docker部署避坑指南 2026/9/26 15:00:37

DB2 V11.1安装实战:从下载到实例创建与Docker部署避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
WorkBuddy Enterprise企业级Agent平台:SkillHub技能沉淀与团队协作实战 2026/9/26 15:00:30

WorkBuddy Enterprise企业级Agent平台:SkillHub技能沉淀与团队协作实战

1. 从「超级个体」到「超级团队」:这个平台到底在解决什么问题 第一次看到「WorkBuddy Enterprise」这个名字,我脑子里蹦出来的第一个念头是:腾讯云终于把 CodeBuddy 那套东西往企业级方向推了。如果你最近关注过 AI 编程助手这个赛道&#x…

阅读更多 →
Atlas 300V 24G推理加速卡上运行YOLO:从概念到部署全解析 2026/9/26 15:00:30

Atlas 300V 24G推理加速卡上运行YOLO:从概念到部署全解析

最近在好几个技术群里连续看到同一个问题:“Atlas 300V 24G是运算加速卡吗?”“有没有人用Atlas部署过YOLO?”这俩问题其实是同一件事:很多人刚拿到昇腾推理卡,想把手里的目标检测任务跑起来,结果第一步就卡…

阅读更多 →
Python+OpenCV疲劳驾驶检测源码:EAR/MAR算法与工程避坑指南 2026/9/26 15:00:30

Python+OpenCV疲劳驾驶检测源码:EAR/MAR算法与工程避坑指南

简介:这是一套面向计算机相关专业学生与项目实战学习者的疲劳驾驶检测完整项目包,基于Python与OpenCV实现,可直接用于毕业设计、课程设计或期末大作业。项目围绕人脸关键点定位与眼部状态分析展开,通过摄像头实时判断驾驶员疲劳程…

阅读更多 →
WinCC V16 ADODB连接SQL Server工业级实践指南 2026/9/26 15:00:30

WinCC V16 ADODB连接SQL Server工业级实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉