一、下载软件离线包方式
1、 “yum deplist”查找 rpm 包的依赖列表
# yum deplist ansible 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 软件包:ansible.noarch 2.9.13-1.el7 依赖:/usr/bin/env provider: coreutils.x86_64 8.22-24.el7 依赖:/usr/bin/python2 provider: python.x86_64 2.7.5-88.el7 依赖:PyYAML provider: PyYAML.x86_64 3.10-11.el7 ...
2、repotrack方式下载全量依赖包
# 安装yum-utils $ yum -y install yum-utils # 下载 ansible 全量依赖包 $ repotrack ansible
3、yumdownloader和downloadonly 插件
两者仅会将主软件包和基于你现在的操作系统所缺少的依赖关系包一并下载。
# 安装yum-utils $ yum -y install yum-utils # 下载 ansible 依赖包 $ yumdownloader --resolve --destdir=/tmp ansible
参数说明:
- –destdir:指定 rpm 包下载目录(不指定时,默认为当前目录)
- –resolve:下载依赖的 rpm 包。
# 安装插件 $ yum -y install yum-download # 下载 ansible 依赖包 $ yum -y install ansible --downloadonly --downloaddir=/tmp
4、离线安装rpm包
$ rpm -Uvh --force --nodeps *.rpm
二、同步yum离线源方式
1、用到 createrepo
工具
https://www.cnblogs.com/asheng2016/p/local-yum.html
https://www.cnblogs.com/asheng2016/p/local-yum-http.html
2、直接同步源到本地
如:同步阿里云到本地
删除/etc/yum.repos.d下所有源文件
安装yum-utils
yum install yum-utils -y
安装这两个工具主要使用 createrepo 和reposync 这两个命令
下载源repo到本地
wget -O /etc/yum.repos.d/aliyun.repo https://mirrors.aliyun.com/repo/Centos-7.repo
查看yum源仓库标识
# yum repolist
已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 源标识 源名称 状态 base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 9,591 extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 196 updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 657 repolist: 10,444
根据源标识同步源到本地目录
# reposync -r base -p /var/www/html/ #这里同步base目录到本地
# du -sh (base源)
9.0G
3、将 /var/www/html/base下的 rpm 包 创建为本地的 YUM 仓库,目的是为生成repodata目录并自动创建索引信息
# createrepo -pdo /var/www/html/base/ /var/www/html/base/ #第一个目录是repodata存放目录,第二个目录是需要生成索引信息yum源仓库目录 Spawning worker 0 with 3357 pkgs Spawning worker 1 with 3357 pkgs Spawning worker 2 with 3356 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete
4、为保证本地yum源能和阿里云镜像源同步,可以通过脚本定时任务实现:
vim /root/yum-update.sh #!/bin/bash datetime=`date +"%Y-%m-%d"` exec > /var/log/epel.log #同步日志输出 reposync -d -r epel -p /var/www/html/ #同步镜像源 if [ $? -eq 0 ];then createrepo --update /var/www/html/epel #每次添加新的rpm时,必须更新epel索引信息 echo "SUCESS: $datetime epel update successful"else echo "ERROR: $datetime epel update failed"fi #定时任务:每周六凌晨三点同步yum源 crontab -e 0 3 * * 6 /bin/bash /root/yum-update.sh
三、挂载一个iso文件
1 挂载ISO文件到/mnt/cdrom下:mount -o loop /home/CentOS-7-x86_64-DVD-1708.iso /mnt/cdrom 2 创建repo文件 [root@localhost /]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# mkdir bak [root@localhost yum.repos.d]# mv *.repo /etc/yum.repos.d/bak [base] name=CentOS baseurl=file:///mnt/cdrom enabled=1 gpgcheck=0 gpgkey=file:///mnt/cdrom/rpm-gpg/RPM-GPG-KEY-CentOS-7 yum clean all
参考:
https://www.2cto.com/net/201512/455901.html https://www.cnblogs.com/chengd/articles/6912938.html