在使用Linux的过程中,你是否也曾遇到过这些烦恼?
刚装完Ubuntu,用系统自带的软件商店下载东西慢到崩溃,还经常安装失败;
从官网下载了.deb安装包,双击安装报错,不知道怎么用命令行处理;
分不清apt、apt-get、dpkg的区别,跟着网上教程敲命令越改越乱;
安装软件时提示“依赖不满足”,手足无措不知道怎么解决……
其实,apt是Debian/Ubuntu系列Linux最核心的软件包管理工具,deb是其专属的软件包格式,学会它们,就能轻松搞定Linux软件的「安装、卸载、更新、修复」,再也不用为“装软件”发愁。
本文从新手视角出发,先讲清核心概念,再手把手教你apt全量用法、deb包安装、国内源配置,搭配实操案例和避坑技巧,所有命令可直接复制执行,新手跟着敲一遍就能完全掌握。
前置说明(必看)
- 本文实操完全适配 Ubuntu 18.04/20.04/22.04、Debian 10/11/12,以及Linux Mint、Deepin等基于Debian的衍生发行版;
- 所有命令均需
root 权限(或 sudo 提权),普通用户直接执行会提示权限不足,新手建议在命令前加sudo; - 更换国内源前,必须先备份默认源文件,避免配置错误导致无法恢复;
- 文中所有代码块均标注「可直接复制」,实操时注意替换占位符(如软件包名、deb文件名),避免误操作;
- 若使用CentOS/Anolis OS/RHEL等红帽系系统,本文内容不适用,可参考上一篇同系列yum/dnf教程。
一、先搞懂:deb包、dpkg、apt 到底是什么?
新手最容易混淆这三个概念,先把底层逻辑讲透,后面的命令一学就会。
1. 核心概念通俗解释
| | |
|---|
| | Debian/Ubuntu系列专属的软件包格式,一个deb包对应一个软件,包含软件的二进制文件、配置、依赖信息等 |
| | Debian系列的底层包管理工具,负责本地deb包的安装、卸载、查询,不会自动解决软件依赖 |
| | 基于dpkg开发的上层包管理工具,全称Advanced Package Tool,会自动从软件源下载deb包、自动解决依赖关系、自动完成安装更新,是新手首选工具 |
2. 三者的核心关系
apt 是上层工具,调用底层的 dpkg 工具,去安装/管理 deb 格式的软件包。
举个例子:
- 你想安装微信,打开应用商店(apt),搜索微信,点击安装,应用商店会自动下载微信安装包(deb)、自动安装依赖的运行库、自动调用安装工具(dpkg)完成安装,全程一键搞定;
- 如果你手动下载了微信安装包(deb),就需要用安装工具(dpkg)手动安装,要是缺少运行库,需要自己手动找齐安装。
新手口诀(快速记忆)
deb是安装包,dpkg管本地,apt管在线,自动解依赖,新手用apt,省心不踩坑。
二、apt 与 apt-get 的区别(新手高频疑问)
很多新手看网上教程,一会是apt install,一会是apt-get install,不知道该用哪个,这里一次性讲透。
| | | |
|---|
| Debian早期经典包管理命令,功能完整但参数复杂 | | |
| 为简化新手操作而生,是apt-get、apt-cache等命令的优化整合版 | 命令更简洁、输出更友好、带进度条,默认开启彩色输出 | |
关键补充(新手必懂)
- 日常使用中,90%的场景apt和apt-get命令完全通用,只需要把
apt-get替换成apt即可; - 新手无需纠结,直接用apt就够了,更简洁、更友好,完全能覆盖所有日常操作;
三、核心用法:apt 常用命令
apt是新手日常使用的首选,下面按「基础必背→进阶实用」的顺序,讲解最常用的命令,所有命令可直接复制执行,重点掌握前6个。
3.1 基础必背命令(日常高频使用)
# 1. 更新软件源列表(必做,安装/更新软件前先执行)sudo apt update# 解读:从配置的软件源同步最新的软件包信息,不更新软件,只更新“软件清单”# 新手必记:换源后、安装软件前,先执行这个命令
# 2. 安装软件包(核心命令,默认安装最新稳定版)sudo apt install 软件包名 -y# 解读:-y 表示自动确认安装,无需手动输入y,避免反复确认# 示例1:安装nginxsudo apt install nginx -y# 示例2:安装多个软件,空格分隔包名即可sudo apt install nginx git wget curl -y# 示例3:安装指定版本的软件sudo apt install nginx=1.18.0-0ubuntu1 -y
# 3. 卸载软件(保留配置文件,常用)sudo apt remove 软件包名 -y# 示例:卸载nginx,保留配置文件sudo apt remove nginx -y
# 4. 彻底卸载软件(删除软件+所有配置文件)sudo apt purge 软件包名 -y# 示例:彻底卸载nginx,删除所有配置sudo apt purge nginx -y# 避坑提示:重装软件想重置配置时,用purge彻底卸载后再重装
# 5. 更新系统所有已安装的软件(安全更新、版本升级)sudo apt upgrade -y# 解读:会更新所有已安装的软件到源里的最新稳定版,不删除旧软件# 避坑提示:生产环境执行前先测试,避免更新导致服务兼容性问题
# 6. 搜索软件包(不知道准确包名时用,模糊搜索)apt search 关键词# 示例:搜索所有包含“nginx”的软件包apt search nginx# 进阶:只搜索软件包名称,不搜索描述(精准过滤)apt search --names-only nginx
3.2 进阶实用命令(提升效率,排查问题)
# 1. 查看软件包详细信息(版本、大小、依赖、功能介绍)apt show 软件包名# 示例:查看nginx的详细信息apt show nginx
# 2. 查看软件是否已安装apt list --installed 软件包名# 示例:查看nginx是否安装apt list --installed nginx# 进阶:查看系统所有已安装的软件包apt list --installed
# 3. 修复损坏的依赖(安装deb包报错、依赖缺失时必用)sudo apt install -f# 解读:自动检测并修复系统中缺失的依赖、损坏的软件包,新手救星
# 4. 清理无用的软件包缓存(释放磁盘空间)sudo apt clean# 解读:清理/var/cache/apt/archives/下的所有deb安装包缓存
# 5. 清理不再需要的依赖包(卸载软件后残留的无用依赖)sudo apt autoremove -y# 解读:自动删除安装软件时自动安装、现在不再被使用的依赖包,释放空间
# 6. 查看可更新的软件包列表apt list --upgradable# 解读:执行apt update后,用这个命令查看哪些软件可以更新
实用技巧 & 避坑点
✅ 技巧1:安装软件前,先执行sudo apt update更新软件源列表,避免安装旧版本;
✅ 技巧2:忘记软件包全名时,用apt search --names-only 关键词精准搜索,比模糊搜索更高效;
✅ 技巧3:安装本地deb包时,用sudo apt install ./xxx.deb,会自动解决依赖,比dpkg更省心(后面会详细讲);
❌ 避坑1:不要随意执行sudo apt upgrade在生产环境,可能会更新内核、核心库,导致服务无法启动;
❌ 避坑2:卸载软件时,不要用apt purge卸载系统核心软件(如systemd、python3),会导致系统崩溃;
❌ 避坑3:apt update和apt upgrade不要搞反,前者是更新软件清单,后者是更新软件。
四、deb 包本地安装与管理(dpkg 核心用法)
很多时候,软件官网只提供deb安装包,没有在apt源里上架,这时候就需要手动安装本地deb包,下面讲两种方法,新手优先用第一种。
4.1 方法1:apt 安装本地deb包(推荐,自动解决依赖)
这是新手首选的方法,apt会自动检测deb包的依赖,并从软件源下载安装所需的依赖,完美解决依赖报错问题。
# 核心语法:必须写deb包的完整路径,当前目录用./sudo apt install ./deb包文件名.deb -y# 示例:安装当前目录下的wps-office.debsudo apt install ./wps-office.deb -y
4.2 方法2:dpkg 安装本地deb包(底层方法,不自动解依赖)
dpkg是底层工具,不会自动解决依赖,适合有经验的用户,新手了解即可。
# 1. 安装本地deb包sudo dpkg -i deb包文件名.deb# 示例:安装当前目录下的wps-office.debsudo dpkg -i ./wps-office.deb# 2. 安装后如果提示依赖缺失,执行这个命令修复sudo apt install -f -y# 3. 查看deb包是否安装dpkg -l 软件包名# 示例:查看wps-office是否安装dpkg -l wps-office# 4. 卸载用dpkg安装的软件(保留配置)sudo dpkg -r 软件包名# 5. 彻底卸载软件(删除配置)sudo dpkg -P 软件包名# 6. 查看deb包的详细信息(不安装,只查看)dpkg -I deb包文件名.deb# 7. 查看deb包里面包含的文件dpkg -c deb包文件名.deb
实用技巧 & 避坑点
✅ 技巧:新手优先用apt install ./xxx.deb安装本地deb包,自动解决依赖,避免踩坑;
❌ 避坑1:不要从非官方渠道下载deb包,可能包含恶意代码,有安全风险;
❌ 避坑2:dpkg安装后依赖报错,不要强行重复安装,执行sudo apt install -f修复即可;
❌ 避坑3:安装deb包时,要注意和你的系统版本、CPU架构匹配(如amd64、arm64),否则会安装失败。
五、国内源配置(解决下载慢、报错,核心痛点)
为什么要配置国内源?
Ubuntu/Debian默认的软件源服务器在国外,国内用户下载软件时,速度慢、延迟高,甚至会出现“无法连接源”“404报错”的问题。
国内源(阿里云、清华源、华为云)是国内厂商/高校同步国外官方源的镜像,服务器在国内,下载速度能提升10倍以上,还能避免连接失败的问题——这是新手装完系统后必做的配置。
5.1 国内源选择(新手推荐)
| | |
|---|
| 更新及时、稳定性好,适配所有Ubuntu/Debian版本 | |
| | |
| | |
5.2 前置准备:备份默认源(必做,避免配置错误无法恢复)
不管是Ubuntu还是Debian,源配置文件都是/etc/apt/sources.list,配置前必须先备份:
# 1. 备份默认源文件(备份到用户家目录,方便恢复)sudo cp /etc/apt/sources.list ~/sources.list.backup# 2. 验证备份是否成功ls ~ | grep sources.list.backup# 有输出就说明备份成功,配置错误可以执行下面的命令恢复:# sudo cp ~/sources.list.backup /etc/apt/sources.list
5.3 Ubuntu 国内源详细配置步骤
第一步:确认你的Ubuntu版本代号
不同Ubuntu版本的源不能混用,先执行命令确认版本代号:
lsb_release -c# 示例输出:# Codename: jammy# jammy是Ubuntu 22.04的代号,focal是20.04,bionic是18.04
第二步:替换源文件内容
用vim编辑源配置文件,清空原有内容,粘贴对应版本的国内源配置:
# 编辑源配置文件sudo vim /etc/apt/sources.list
配置1:Ubuntu 22.04(jammy)清华源(推荐)
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
配置2:Ubuntu 20.04(focal)清华源
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
配置3:阿里云源(全版本通用,替换代号即可)
把下面配置里的jammy替换成你的版本代号(如focal、bionic)即可:
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
第三步:更新源缓存,验证配置
保存退出vim后,执行以下命令更新缓存,无报错就说明配置成功:
# 更新软件源列表sudo apt update# 测试下载速度,安装一个小软件sudo apt install tree -y# 能快速安装完成,就说明国内源配置成功
5.4 Debian 国内源详细配置步骤
第一步:确认你的Debian版本代号
lsb_release -c# 示例输出:# Codename: bookworm# bookworm是Debian 12的代号,bullseye是Debian 11,buster是Debian 10
第二步:替换源文件内容
# 编辑源配置文件sudo vim /etc/apt/sources.list
配置1:Debian 12(bookworm)清华源(推荐)
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmwaredeb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmwaredeb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmwaredeb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
配置2:Debian 11(bullseye)清华源
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-freedeb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-freedeb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-freedeb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
第三步:更新源缓存,验证配置
# 更新软件源列表sudo apt update# 测试配置是否正常sudo apt install tree -y
实用技巧 & 避坑点
✅ 技巧1:配置前务必备份默认源,一旦配置错误,可执行sudo cp ~/sources.list.backup /etc/apt/sources.list恢复;
✅ 技巧2:如果清华源速度慢,可替换成阿里云源,不同地区的网络适配不同的源;
❌ 避坑1:源配置必须对应你的系统版本代号,选错会导致update报错,无法安装软件;
❌ 避坑2:不要同时添加多个不同的国内源,可能导致软件包冲突;
❌ 避坑3:不要随意添加第三方PPA源,可能有安全风险,还会导致系统兼容性问题。
六、常见问题与避坑指南
1. 执行apt命令提示「Could not get lock /var/lib/dpkg/lock-frontend」(锁文件报错)
- 原因:系统中有其他apt/dpkg进程正在运行(比如软件商店正在更新),或者之前的apt命令异常退出,导致锁文件没有释放;
- 解决方法(按顺序执行,不要直接删锁文件):
# 1. 先查找正在运行的apt/dpkg进程ps aux | grep aptps aux | grep dpkg# 2. 找到进程PID后,结束进程(替换PID为实际数字),如果不能结束,那么可强制 sudo kill -9 PIDsudo kill PID# 3. 如果还是报错,再删除锁文件sudo rm -f /var/lib/dpkg/lock-frontendsudo rm -f /var/lib/dpkg/locksudo rm -f /var/cache/apt/archives/lock# 4. 修复dpkg状态sudo dpkg --configure -a
2. 安装软件时提示「无法定位软件包 E: Unable to locate package」
- 原因1:软件包名写错了(比如把nginx写成ngix);
- 原因2:没有执行
sudo apt update更新软件源列表; - 用
apt search 关键词确认正确的软件包名;
3. 安装软件时提示「依赖不满足:xxx 但是它将不会被安装」
- 原因:软件需要的依赖包版本不对,或者源里缺少对应的依赖包;
- 先执行
sudo apt install -f自动修复依赖; - 执行
sudo apt update && sudo apt upgrade更新源和软件;
4. 执行apt update时提示「404 Not Found」
- 原因:源地址错误,或者系统版本已经停止维护(如Ubuntu 18.04),官方源已经下架;
- 对于停止维护的旧版本,替换成清华源的old-releases镜像。
5. 卸载软件后,配置文件还在,重装后配置没有重置
- 原因:用
apt remove卸载只会删除软件,不会删除配置文件; - 解决方法:用
sudo apt purge 软件包名彻底卸载软件和配置文件,再重新安装。
七、常用命令速查表(建议收藏,日常直接查)
# ===================== apt 核心命令 =====================sudo apt update # 更新软件源列表(安装前必做)sudo apt install 包名 -y # 安装软件sudo apt install ./xxx.deb -y # 安装本地deb包(自动解依赖)sudo apt remove 包名 -y # 卸载软件(保留配置)sudo apt purge 包名 -y # 彻底卸载软件(删除配置)sudo apt upgrade -y # 更新所有已安装软件sudo apt search 关键词 # 搜索软件包sudo apt show 包名 # 查看软件详细信息sudo apt list --installed 包名 # 查看软件是否安装sudo apt install -f # 修复损坏的依赖sudo apt autoremove -y # 清理无用的依赖包sudo apt clean # 清理软件包缓存# ===================== dpkg 核心命令 =====================sudo dpkg -i xxx.deb # 安装本地deb包sudo dpkg -l 包名 # 查看软件是否安装sudo dpkg -r 包名 # 卸载软件(保留配置)sudo dpkg -P 包名 # 彻底卸载软件(删除配置)sudo dpkg -I xxx.deb # 查看deb包详细信息sudo dpkg -c xxx.deb # 查看deb包内的文件sudo dpkg --configure -a # 修复dpkg状态# ===================== 源配置相关 =====================sudo cp /etc/apt/sources.list ~/sources.list.backup # 备份源文件sudo vim /etc/apt/sources.list # 编辑源配置文件
八、总结
- deb是Debian/Ubuntu系列的软件包格式,dpkg是底层包管理工具,apt是上层工具,能自动解决依赖,新手优先用apt;
- apt和apt-get用法基本一致,apt更简洁友好,新手日常操作直接用apt即可;
- 核心命令:update更新源清单、install安装、remove/purge卸载、upgrade更新,记住这4个,就能应对80%的日常场景;
- 本地deb包安装,优先用
sudo apt install ./xxx.deb,自动解决依赖,避免dpkg的依赖报错; - 国内源配置是解决下载慢、报错的关键,配置前务必备份默认源,源必须对应系统版本,配置后执行update验证;
- 新手避坑核心:先备份,再操作;不要随意添加第三方源;生产环境不要随意执行全量upgrade。
学会apt和deb包管理,就能彻底搞定Debian/Ubuntu系列Linux的软件安装问题,不管是日常桌面使用,还是服务器运维,这都是必备的核心技能。建议多动手实操文中的命令和配置步骤,加深记忆,把这些操作变成自己的“肌肉记忆”。
如果你觉得本文对你有帮助,欢迎点赞、推荐、转发,关注我,后续会分享更多Linux入门干货!
文 / 零距技术仓记录每一次真实的折腾 (#^.^#)🚀 想看到更多实用折腾技巧?👉 先关注💬 评论区说说你的经历或想看的内容👍 点赞表示支持🔁 顺手分享给也在折腾的人,让大家都少踩坑 😎