工作随笔 - CentOS7 离线yum源搭建

由于最近经常遇到无外网机器安装软件依赖问题,特此总结一下如何配置离线yum源

  1. 下载rpm离线包,下载之前,需要确保服务器是minimal的系统,防止已经有预先下载好的依赖。
# docker-ce repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 下载docker-ce以及它的依赖
yum install docker-ce-19.03.9 --downloadonly --downloaddir=/tmp/docker-ce-repo
  1. 安装createrepo模块,此模块支持创建本地yum源
# 删除createrepo依赖的rpm包,以防版本冲突
rpm -qa | grep libxml2 | xargs rpm -e --nodeps
rpm -qa | grep deltarpm| xargs rpm -e --nodeps
 
# 手动安装createrepo rpm
rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh libxml2-2.9.1-6.el7.4.x86_64.rpm
rpm -ivh libxml2-python-2.9.1-6.el7.4.x86_64.rpm
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
 
# rpm文件比如存放/tmp/localrepo, 在此目录下执行
createrepo -v /tmp/localrepo
# 更新当前yum源命令: createrepo --update /tmp/localrepo

# 添加repo文件,适当修改baseurl路径,指向rpm存放路径

  1. /etc/yum.repos.d/目录下面创建repo文件,baseurl指向本地存放rpm的目录
# /etc/yum.repos.d/localrepo.repo,例如
[localrepo]
name=Local Repository
baseurl=file:///tmp/localrepo
gpgcheck=0
enabled=1
  1. 如果为了支持多台服务器同时使用这台服务器搭建的yum源,那baseurl不能是本地路径,首先需要用Python2创建httpserver,支持其他服务器可以访问到这台服务器的静态资源rpm文件
# 首先需要保证服务器包含python,一般服务器自带python 2.7
# 以下命令会启动一个httpserver,并把当前目录共享出去,比如在/tmp//localrepo下执行如下命令
nohup python -m SimpleHTTPServer 8080 &
  1. 修改repo文件中baseurl值,指向这个httpserver
[localrepo]
name=Local Repository
baseurl=http://192.168.20.151:8080/
gpgcheck=0
enabled=1
  1. yum清理一下,并makecache,确保可以看到刚刚创建的localrepo
yum clean all
yum makecache
yum repolist
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。