栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

自建离线yum源

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

自建离线yum源


文章目录
  • 前言
  • 一、yum以及源的概念?
  • 二、yum源标识(repo id)类型
  • 三、开始搭建
    • 0、准备工作
      • 安装所需软件
      • 配置yum源
    • 1、全量离线yum源
      • 1.1 查看已经配好的网络源id
      • 1.2 按照源ID将网络源拉取到本地
      • 1.3 生成repodata索引依赖
      • 1.4 使用测试
      • 1.5 测试
    • 2、特定软件的离线yum源
      • 2.1 拉取特定服务rpm包和依赖
      • 2.2 生成repodata索引依赖
      • 2.3 测试


前言

由于公司主要业务都在专网、内网环境下运行,无法使用yum安装升级更新,服务器量少的情况下也可以使用离线安装,但是随着服务器规模上升并且人员混杂,还是使用统一的自建的yum源更加方面快捷。


一、yum以及源的概念?

yum是在RedHat中的一个包管理工具。基于RPM包管理,能够从指定服务器自动下载RPM包并且安装,可以自动处理依赖关系,能够一次安装所有依赖的软件包,无需一次一次的下载安装。yum源就是存放rpm包以及依赖关系的服务器,一般是指163、souhu、阿里、中国科技大学等公共的网络yum源,或者是自建的局域网yum仓库。


二、yum源标识(repo id)类型

base

指操作系统镜像源,包含了ISO镜像内的所有软件包

updates

包含了系统更新,升级的软件包

extras

扩充的软件包合集

epel

为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux.

自定义repo id
以k8s yum源为例,[repo id]本地可以随意定义,主要是看baseurl连接的源,当多个repo id重复时,会以最后加载的一个repo id为准

cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=k8s
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

三、开始搭建 0、准备工作

首先需要准备一台可以连接互联网的服务器,安装所需依赖环境和软件包;

安装所需软件
yum -y install wget yum-utils createrepo 

createrepo:用于生成yum源各软件之间的依赖索引。
yum-utils:安装后可使用 yumdownloader 命令下载所需软件包。
reposync:Reposync用于将远程yum存储库同步到本地,使用yum检索包的目录。

配置yum源

这里使用阿里源Centos7的yum源为例

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#替换阿里源地址,官方推荐操作
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
1、全量离线yum源 1.1 查看已经配好的网络源id
yum repolist
1.2 按照源ID将网络源拉取到本地
reposync -r base -p /data/yum/base
reposync -r epel -p /data/yum/epel
reposync -r extras -p /data/yum/extras
reposync -r updates -p /data/yum/updates
reposync -r kubernetes -p /data/yum/kubernetes
1.3 生成repodata索引依赖
createrepo /data/yum/base
createrepo /data/yum/epel
createrepo /data/yum/extras
createrepo /data/yum/updates
createrepo /data/yum/kubernetes

在Packages同级目录中可以看到生成的repodata目录

1.4 使用测试

备份/etc/yum.repo.d/中的其他文件,手动添加:

[Centos7-base]
name=centos-base
baseurl=file:///opt/base/base
gpgcheck=0
enabled=1

#其他repo id按照同样格式书写
[kubernetes] 
name=k8s
baseurl=http://192.168.12.12/yum/kubernetes
......

注意:baseurl 可以使用file 、ftp或http,目录路径要写到Package和repodata目录。

1.5 测试
yum repolist

repo id                              repo name                            status
Centos7-base                         centos-base                          10,072
kubernetes                           k8s                                       0
repolist: 10,072

将本地的rpm包和依赖包压缩打包,放入内网环境,这样其他台的服务器也可能通过添加自定义的repop文件,以本机或者http的方式连接yum源仓库了


2、特定软件的离线yum源

上一种方法制作全量的yum离线源,虽然实用,但是把整个源全部都拉下来是在是太大了,仅拉取centos自带的yum源就占了10个G,加上epel和其他源,那就太大了。所以在大部分情况下不是很适用。

所以我们可以选择制作专门一个多多个软件包的小源,简单小巧,利于传输。

这里以docker举例,制作一个docker离线源

2.1 拉取特定服务rpm包和依赖

利用 yumdownloader 命令可以解决软件安装时的依赖关系,并且用参数可以将其所有都下载下来(并不安装到本地docker_rpms目录)

yumdownloader --resolve --destdir=./docker_rpms/ docker
2.2 生成repodata索引依赖
createrepo ./docker_rpms
2.3 测试
cat <> /etc/yum.repos.d/test.repo
[docker]
name=dokcer-ce
baseurl=file:///root/docker_rpms
gpgcheck=0
enabled=1
EOF
yum repolist

repo id                              repo name                            status
Centos7-base                         centos-base                          10,072
docker                               dokcer-ce                                56
repolist: 10,128

验证成功!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/841934.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号