引言
Linux 系统的稳定性与高效性早已成为服务器领域的标杆,而其强大的软件生态更是开发者与运维人员依赖它的核心原因之一。但在 云栈社区 的日常技术交流中,我们发现对于 Linux 新手而言,“安装软件”往往是入门的第一道坎——手动编译源码、解决依赖循环、清理残留文件,繁琐且易出错。而软件包管理器,正是为解决这些痛点而生的核心工具。
本文将全面拆解 Linux 软件包管理器,涵盖 Linux 软件生态架构、镜像源优化技巧,以及最常用的 yum 和 apt 包管理器完整实操,助力大家快速玩转 网络/系统 级别的软件管理。
一、软件包管理器
在 Windows 系统中,我们安装软件通常是下载 .exe 文件,双击下一步即可完成,但 Linux 系统中没有统一的“安装文件格式”,取而代之的是“软件包”,而软件包管理器就是管理这些软件包的工具,二者相辅相成。
1.1 解析:软件包的核心
- 软件包: 本质上是一个压缩归档文件,包含了软件的可执行程序、配置文件、依赖库、帮助文档等所有运行该软件所需的文件,同时还会记录软件的版本信息、依赖关系(即运行该软件需要提前安装的其他软件/库)。
- 包管理器: Linux 系统中用于管理软件包全生命周期的工具,核心功能包括:安装软件包、卸载软件包、更新软件包、查询软件包信息、解决软件包依赖关系。
简单来说:软件包好比“App”,软件包管理器就是 Linux 系统的「应用商店」。
【常见的软件包格式】:
- RPM 包: RedHat 系列(CentOS、RHEL、Fedora)默认格式,后缀为
.rpm
- DEB 包: Debian 系列(Ubuntu、Debian、Deepin)默认格式,后缀为
.deb
- 源码包: 后缀为
.tar.gz、.tar.bz2,需要手动编译安装,灵活性高但操作复杂(新手不推荐)
【常见的软件包管理器】:
- yum: RedHat 系列默认包管理器,基于 RPM 包,自动解决依赖,操作简单
- apt-get/apt: Debian 系列默认包管理器,基于 DEB 包,与 yum 功能类似(比如
apt install 对应 yum install)
【Linux 下载软件过程】: Ubuntu、Centos、other

1.2 Linux 的软件生态:核心问题与优势
评价一款操作系统的好坏,生态是关键指标——Linux 的软件生态以 “开源、多样” 为核心特点,广泛应用于服务器领域,但同时也存在两个新手最容易踩坑的核心问题:依赖关系复杂、系统版本兼容性差。

- 软件包依赖问题:
大部分 Linux 软件都不是独立运行的,需要依赖其他的软件库(如 C 语言库、加密库)或其他软件,这种依赖关系可能形成 “链式依赖”(A 依赖 B,B 依赖 C,C 依赖 D),只要其中一个依赖缺失或版本不匹配,软件就无法正常运行。

| 特点 |
体现 |
| 开源免费 |
大部分 Linux 软件都是开源的,可以直接使用,且可以根据需求修改源码 |
| 安全性高 |
开源软件的漏洞能被全球开发者发现并修复,比闭源软件有保障 |
| 可定制性强 |
软件的源码开放,可根据需求裁剪功能、修改配置 |
| 轻量化、稳定 |
Linux 软件普遍占用系统资源少,运行稳定,适合长期不间断运行 |
那么在社区为什么会有很多的免费软件供人使用?还是上面提到的:开源模式。开源本身也是一种商业模式。

二、镜像源:解决 Linux 软件下载慢、下载失败的关键
我们使用 yum 安装软件时,yum 会从“软件源”(存放软件包的服务器)中下载软件包和依赖。默认情况下,Linux 系统的官方软件源服务器都在国外,国内用户访问时会出现下载速度慢(几 KB/s)、超时、下载失败等问题——配置国内镜像源,是解决这些问题的唯一有效方法。
2.1 基础:镜像源是什么
镜像源(Mirror) 本质上是官方软件源的“副本”——国内的各大厂商(阿里云、腾讯云、网易、清华、中科大等)会将国外官方源中的所有软件包,同步到自己的国内服务器上,形成国内镜像源。

2.2 国内常见镜像安装源
| 镜像站名称 |
网址 |
发行版本 |
| 清华大学 TUNA 镜像站 |
https://mirrors.tuna.tsinghua.edu.cn/ |
Ubuntu, Debian, CentOs, Arch Linux, EPEl 等 |
| 中国科学技术大学 USTC 镜像站 |
https://mirrors.ustc.edu.cn/ |
Ubuntu, Debian, CentOS, Arch Linux, EPEL 等 |
| 阿里云镜像站 |
https://developer.aliyun.com/mirror/ |
Ubuntu, Debian, CentOS, Fedora, Arch Linux, EPEL 等 |
| 华为云镜像站 |
https://mirrors.huaweicloud.com/home |
Ubuntu, Debian, CentOS, Fedora, EPEL 等 |
| 网易开源镜像站 |
https://mirrors.163.com/ |
Ubuntu, Debian, CentOS, Fedora, EPEL |
| 腾讯云镜像站 |
https://mirrors.cloud.tencent.com/ |
Ubuntu, CentOS, EPEL, Docker, PyPI 等 |
【选择建议】:
- 地理位置优先: 选择离你物理位置最近的镜像站
- 稳定性测试: 可以 ping 或 curl 测试响应速度
- 一键脚本: 有些镜像站提供自动替换脚本,更加便捷
- 企业环境: 对于企业级的 运维/DevOps/SRE 实践,建议使用阿里云、腾讯云、华为云等企业级镜像,保证 SLA
三、yum + apt 指令实操:从基础到常用
【温馨提示】:
- 所有指令需使用 root 用户 执行,或在指令前加 sudo(如
sudo yum install nginx -y、sudo apt install nginx -y),否则会提示“权限不足”。
- 指令中的
-y 参数表示“自动确认”,避免每次操作都提示“是否继续(y/n)”,提升操作效率,建议加上。
- 所有操作需 保证系统联网,否则会提示“无法连接到软件源”。
3.1 查看软件源状态
用于确认配置的国内镜像源是否生效,执行后可验证后续指令能否正常使用:
# CentOS:yum专属指令,查看当前启用的yum源列表,确认镜像源生效
sudo yum repolist
# 会输出类似如下内容(以阿里云yum镜像源为例):
# repo id repo name status
# base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
# epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,735
# updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 4,896
# 其中“repo id”为yum源标识,“repo name”为yum源名称(含阿里云标识),“status”为该源可用软件包数量,
# 若能看到对应国内镜像源(如aliyun)且软件包数量正常,说明yum镜像源配置成功,后续yum指令可正常使用。
#=====================================================================
# Ubuntu:查看当前启用的apt源列表,确认镜像源生效
sudo apt update && sudo apt list --upgradable
# 1. 先执行sudo apt update,会输出各apt源的更新进度,类似:
# Hit:1 http://mirrors.aliyun.com/ubuntu focal InRelease
# Hit:2 http://mirrors.aliyun.com/ubuntu focal-updates InRelease
# ......(无“Could not connect”等报错)
# Reading package lists... Done
# Building dependency tree
# Reading state information... Done
# 2. 再执行sudo apt list --upgradable,会列出可升级的软件包(若暂无可升级软件,会提示“No upgrades available”),
# 整个过程无网络报错、能正常加载源信息,说明apt镜像源配置成功,后续apt指令可正常使用。
yum(sudo yum repolist):执行后会显示 yum 源的名称、标识、软件包数量,如果能看到 aliyun 相关的源(如 base、epel),且软件包数量正常(通常上万个),说明阿里云 yum 镜像源配置成功,后续所有 yum 指令可正常使用。
apt(sudo apt update && sudo apt list --upgradable):执行后先更新缓存,再显示可升级的软件包列表,若没有“无法连接”报错,且能正常显示软件包,说明阿里云 apt 镜像源配置成功,后续所有 apt 指令可正常使用。
3.2 查询软件包
# CentOS:搜索lrzsz软件包
$ yum list | grep lrzsz
lrzsz.x86_64 0.12.20-36.el7 @base
#lrzsz软件已安装(@base表示从基础源安装),版本0.12.20,适用于CentOS 7
# Ubuntu:搜索lrzsz软件包
$ apt search lrzsz
Sorting... Done
Full Text Search... Done
cutecom/focal 0.30.3-1build1 amd64
Graphical serial terminal, like minicom
lrzsz/focal,now 0.12.21-10 amd64 [installed]
#lrzsz软件已安装([installed]标识),版本0.12.21,适用于Ubuntu 20.04
Tools for zmodem/xmodem/ymodem file transfer
# Ubuntu查看lrzsz详细信息
$ apt show lrzsz
Package: lrzsz
Version: 0.12.21-10
# 解读:确认软件包名称为lrzsz,版本0.12.21-10
Tools for zmodem/xmodem/ymodem file transfer
# 解读:软件功能描述——用于Zmodem/Xmodem/Ymodem协议的文件传输工具
lrzsz 软件包提供 rz(接收)和 sz(发送)命令。
yum list | grep ≈ apt search:搜索软件包
yum info ≈ apt show:查看详细信息
【注意事项】:
- 软件包名称:主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构
x86_64 后缀表示 64 位系统的安装包,i686 后缀表示 32 位系统安装包,选择包时要和系统匹配
el7 表示操作系统发行版的版本,el7 表示的是 centos7/redhat7。el6 表示 centos6/redhat6
- 最后一列,base 表示的是“软件源”的名称,类似于“小米应用商店”、“华为应用商店”这样的概念
- Ubuntu 有上述详细介绍
3.3 安装软件包
# 一、CentOS
#1.查询lrzsz是否已安装
sudo yum list | grep lrzsz
#若已安装
lrzsz.x86_64 0.12.20-36.el7 @base
#lrzsz已安装,版本0.12.20,适配CentOS 7,@base表示从基础源安装,无需再执行安装指令
#若未安装
lrzsz.x86_64 0.12.20-36.el7 base
#lrzsz未安装,软件包存在于base基础源中,可执行以下安装指令
# 2.未安装时,执行yum安装指令
sudo yum install lrzsz -y
#======================================================
#Ubuntu系统
# 1.先查询lrzsz是否已安装
sudo apt search lrzsz
#若已安装
lrzsz/focal,now 0.12.21-10 amd64 [installed]
#lrzsz已安装,版本0.12.21,适配Ubuntu 20.04(focal),[installed]为已安装标识,无需再执行安装指令
#若未安装
lrzsz/focal 0.12.21-10 amd64
#lrzsz未安装,软件包存在于配置的国内镜像源中,可执行以下安装指令
#2.未安装时,执行apt安装指令
sudo apt install lrzsz -y
#3.安装完成后,查看lrzsz详细信息(验证安装)
sudo apt show lrzsz
Package: lrzsz
Version: 0.12.21-10
#确认软件包名称为lrzsz,安装版本0.12.21-10,与下载版本一致
Tools for zmodem/xmodem/ymodem file transfer
指令语法: 安装软件包:yum / apt install [选项] 软件包名(-y 自动确认)
【注意事项】:
- 安装软件时需要 root 用户或者
sudo
- yum / apt 安装软件只能安装完一个再装另一个,尝试同时安装会报错
3.4 卸载软件包
#卸载lrzsz工具,保留配置
#yum
sudo yum remove lrzsz -y
sudo yum erase lrzsz -y
#apt
sudo apt remove lrzsz -y
关于 yum/apt 的所有操作必须保证主机(虚拟机)网络畅通!可通过 ping 指令验证:ping www.baidu.com
总结
本文梳理了 Linux 软件包、管理器及镜像源的核心知识,拆解新手常见的依赖与兼容问题,同步给出 yum、apt 的实操指令。
对新手而言,掌握基础指令并配置国内镜像源,是高效搞定软件安装的关键,也是熟悉 Linux 生态的入门必备。后续可结合实际需求探索进阶操作,充分发挥 Linux 开源、稳定的优势。