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