使用本地的yum源有几个潜在的好处:
-
更快的下载速度: 本地yum源通常位于本地网络上,因此可以通过局域网快速获取软件包,而不需要依赖互联网连接。这样可以提供更快的下载速度,节省时间和带宽消耗。
-
离线访问: 使用本地yum源可以在没有互联网连接的环境中访问软件包。这对于在没有网络连接或希望独立于互联网的封闭环境中部署系统的情况非常有用。
-
更好的控制: 通过使用本地yum源,你可以更好地控制可用的软件包版本和更新。你可以选择在本地镜像中保留特定的软件包版本,而不受远程仓库的变化影响。这有助于确保系统中使用的软件包版本符合你的要求和稳定性需求。
一、把需要的rpm包下载到本地
1、配置yum工具
使用yum命令加上参数
--downloadonly:只下载
--downloaddor:指定下载目录
mkdir -p /data/yum
yum install --downloadonly --downloaddir=/data/yum/ mysql-community-server
此时,就将MySQL的相关安装包和依赖包下载到了/yum/目录。
完成上面的步骤,第一步本地rpm包准备好了
2、生成yum仓库数据文件信息(repodate信息)
没有生成仓库数据信息,在使用yum的时候会报错,使用仓库需要有repomd.xml这个文件。
repomd.xml:文件就是仓库rpm包的索引信息。
使用createrepo生成即可,默认是没有这个命令的。
yum install createrepo -y # 安装createrepo
createrepo /data/yum/ # 生成repomd.xml文件
通过上述命令生成的
3、配置本地yum仓库
vim /etc/yum.repos.d/local.repo [local] name=local repository baseurl=file:///data/merged_repodata enabled=1 gpgcheck=0
yum repoinfo local
清除缓存
yum clean all && yum repolist # 清除缓存
二、合并yum源
之前没有合并多个yum源,每次生成单独的yum源和repodata,会造成客户端配置时候要配置多个
yum.repo
当需要在目录层次结构中区分不同功能的RPM包,同时只有一份共享的repodata时,可以采取以下步骤:
- 创建一个新的目录,用于存储合并后的repodata和分目录的RPM包。假设你创建了一个名为"merged_data"的目录。
- 将所有的RPM包复制到"merged_data"目录中。
- 打开终端,导航到"merged_data"目录。使用以下命令安装createrepo工具(如果尚未安装):
yum install createrepo
4.运行以下命令生成repodata:
这将在"merged_data"目录中生成一个名为"repodata"的新目录,其中包含合并后的repodata文件。
5.在"merged_data"目录中创建用于区分不同功能的子目录。例如,假设你有两个功能(func1和func2),你可以创建两个子目录:func1和func2。
6.将每个功能的RPM包分别复制到相应的子目录中。
现在,你的目录结构看起来像这样:
merged_data/ ├── func1/ │ ├── rpm1.rpm │ ├── rpm2.rpm │ └── ... ├── func2/ │ ├── rpm3.rpm │ ├── rpm4.rpm │ └── ... └── repodata/ ├── repomd.xml └── ...
其中,"repodata"目录包含合并后的repodata文件,而每个功能的RPM包则分别存放在对应的子目录中。
其他人可以使用生成的repodata和相应的目录结构来创建yum.repo文件。他们只需要在yum.repo文件中引用合并后的repodata的路径即可。