1、基于yum安装软件缓存
- 修改yum配置文件
# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1 (将保留缓存开启)
- 安装createrepo
# yum install createrepo
- 将yum缓存的rpm包拷贝到目录中
# find /var/cache/yum/* -name *.rpm |sed -r 's#.*#mv & /root/Packages/\n#'|bash
- 下载没有安装过的包
# yum install --downloadonly --downloaddir=/root/Packages -y 包名称
- 重新下载已经安装过的包
# yum reinstall --downloadonly --downloaddir=/root/Packages -y 包名称
- 更新源
# createrepo --update -p /root/Packages
2、使用repotrack制作本地离线源
需要有一台可以联网的机器
- 安装yum-utils
# yum install -y yum-utils createrepo epel-release
# mkdir yum
- 下载需要的软件包
# repotrack ansible -p yum
# createrepo -v yum # 创建repodate缓存文件
- 制作离线压缩包
# 压缩yum这个文件夹,使用时,解压缩并添加yum路径即可使用
3、使用yumdownloader制作本地离线源
1.安装yum-utils
# yum install -y yum-utils
2.yumdownloader使用方法
(1)只下载软件,不下载依赖包
# yumdownloader -y cifs-utils # yum install --downloadonly --downloaddir=/tmp/pages ceph-deploy
(2)不仅下载软件,而且下载依赖包(需要指定下载目录)
# yumdownloader --resolve --destdir=/opt/datas/cifs-utils/ cifs-utils
3.使用yum下载对应安装包以及其所有依赖包(cifs-utils为例)
# yumdownloader --resolve --destdir=/opt/datas/cifs-utils/ cifs-utils
4.安装createrepo:创建yum仓库
# yum -y install createrepo
使用下载的安装包,包括所有依赖,创建yum仓库
# createrepo -v /opt/datas/cifs-utils/
5.压缩创建好的仓库,从而方便传输
# tar -zcvf cifs-utils.tar.gz cifs-utils/
4、yumdownloader和repotrack区别
必须先下载yum -utils,才可以使用这两个命令。
# yum -y install yum-utils
# yumdownloader –resolve --destdir=/tmp ansible用于解析所有依赖项并下载软件包
-
–resolve 下载依赖包
-
–destdir 指定下载目录
# repotrack ansible
- 区别:
yumdownloader解决了ansible的依赖包,但是无法解决依赖包的依赖包
repotrack不仅解决了ansible的依赖包,还解决了依赖包和依赖包之间的关系
4、使用reposync制作本地离线源
同步镜像源库到本地
- 下载工具包
# yum install -y yum-utils
- 获取阿里云源repo
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# wget -O /etc/yum.repos.d/CentOS-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
- 获取repoid
# yum repolist
repoid有4个分别为base、epel、extras、updates
在.repo文件中[serverid]就是repoid
serverid解释:用于区别各个不同的repository,必须有一个独一无二的名称。若重复后面的会覆盖前面的。
- 同步下载包
同步存储库时可以指定一个repoid,也可以指定多个repoid,当然前提是下载目录一致
# reposync -n --repoid=base --repoid=epel --repoid=extras --repoid=updates -p /data1/centos/$releasever
- 建仓(供client端检索使用)
# createrepo -p /data1/centos/base/Packages
# createrepo -p /data1/centos/extras/Packages
# createrepo -p /data1/centos/updates/Packages
# createrepo -p /data1/centos/epel