一、下载软件离线包方式
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