1. 软件包管理是啥
你可以把软件包管理器理解成 Linux 的“应用商店 + 安装工人”:
- 应用商店:帮你找到软件(包)
- 安装工人:帮你下载安装、配置、升级、卸载
- 管理账本:记录系统里都安装了啥、版本号是多少、依赖关系如何
常见的软件包管理工具
- RPM 系(Red Hat/CentOS/Fedora):
yum
/dnf
- DEB 系(Debian/Ubuntu):
apt
/dpkg
- 通用型:
snap
、flatpak
例子(CentOS 安装 Nginx):
sudo yum install nginx
它会:
- 去配置的源里找 nginx
- 检查依赖(比如需要哪些库)
- 下载、解压、安装、注册到系统
2. 缓存是啥
软件包管理器在安装时会下载很多文件(RPM 包、元数据等)。
这些文件会暂存在缓存目录,目的是:
- 下次安装同样的包时不用重新下载
- 可以离线重复安装(只要缓存没清掉)
常用缓存目录
- YUM/DNF:
/var/cache/yum/
或/var/cache/dnf/
- APT:
/var/cache/apt/archives/
常用缓存操作
# 查看缓存路径
yum repolist all
# 清理缓存(包文件和元数据)
yum clean all
# 只清理包文件
yum clean packages
# 只清理元数据
yum clean metadata
3. 自定义 YUM 源是啥
YUM 源(Repository)就是软件包的仓库地址,可以是:
- 官方的互联网仓库
- 企业内网搭建的私有仓库
- 光盘 / ISO 镜像
- 局域网内的镜像站
为什么要自定义:
- 加速下载(换成离你近的镜像站)
- 版本控制(锁定使用某个特定版本的软件)
- 内网环境(无外网时从内网源安装)
- 自研软件发布(企业自己的 RPM 包)
配置自定义 YUM 源
- 新建 repo 文件
路径:/etc/yum.repos.d/myrepo.repo
[myrepo]
name=My Custom Repo
baseurl=http://repo.example.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.example.com/RPM-GPG-KEY-CentOS-7
[myrepo]
:源 IDbaseurl
:仓库地址,可以是http://
、ftp://
或file:///
enabled=1
:启用此源gpgcheck=1
:启用 GPG 签名校验gpgkey
:GPG 公钥地址
- 清缓存并验证
yum clean all
yum repolist
企业实战示例
某公司生产服务器无法访问外网,需要安装指定版本的软件
方案:
- 在能访问外网的机器上下载 RPM 包及其依赖
yum install --downloadonly --downloaddir=/tmp/rpms nginx
- 把
/tmp/rpms
拷贝到内网 YUM 源服务器 - 用
createrepo
生成元数据
createrepo /var/www/html/myrepo
- 在内网机器的
/etc/yum.repos.d/
添加指向该服务器的baseurl
- 所有内网服务器即可直接
yum install nginx