制作离线yum源

一、下载软件离线包方式

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

塞北酒鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值