CentOS7 搭建本地repo仓库源
环境介绍
内网服务器禁止上网,无法使用各种仓库镜像。只能从别的途径把所有的包同步下来,拷贝进内网,再建立仓库。
一、可以联网的Centos中操作
1.安装reposync命令
该命令来自于“yum-utils-1.1.31-45.el7.noarch”包,该包在base源中。
yum install yum-utils-1.1.31-45.el7.noarch
或者直接:
yum install yum-utils
2.安装createrepo命令
该命令来自“createrepo-0.9.9-28.el7.noarch”包,该包在base源中。内网的centos也需要安装此包
createrepo命令用于 同步到本地的包,重新生成repodata目录。
centos7 默认已经有此命令。
yum install createrepo-0.9.9-28.el7.noarch
3.把epel源中的rpm包下载到本地,ius源也一样的操作
# 能够直接使用epel这个名字的前提是,已经
yum install epel-release
//大概需要下载1个多小时
reposync -r epel -p /root/
//不能同时运行这个命令,上面下载完毕,才能启动下面的命令,要不会报错:
//Error: /var/run/yum.pid 已被锁定,PID 为 19347 的另一个程序正在运行。
要下载 https://centos.pkgs.org/7/ius-x86_64/ius-release-2-1.el7.ius.noarch.rpm.html
yum install ius-release-2-1.el7.ius.noarch.rpm
reposync -r ius -p /root/
即在/etc/yum.repos.d/ 目录下,已经有了epel.repo,而且仓库的名字是[epel]
假如是安装mysql
首先
yum install mysql80-community-release-el8-1.noarch.rpm
本地/etc/yum.repos.d/下已经有了 mysql-community.repo 和 mysql-community-source.repo
通过查看上面两个文件,知道mysql的仓库名字有 [mysql80-community]
那么,同步mysql仓库的语句是:
reposync -r mysql80-community -p /root/
将epel源中的rpm包,下载到本地的/root/epel 目录下,大概需要一个多小时.
二、内网的Centos操作
1.把下载到本地的epel拷贝到内网的某目录下
比如/root/epel目录,制作本地仓库。
createrepo -v /root/epel
看到/root/epel目录下多了一个repodata目录,即表示完成
2.设置 /etc/yum.repos.d 目录下面的各种repo文件
比如 CentOS-Media.repo 的设置内容:
[CentOS-media]
name=CentOS-$releasever - Media
baseurl=file:///root/yum-centos7-ios/cdrom
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
epel.repo的设置内容:
[Myrepos-epel]
name=CentOS-$releasever
baseurl=file:///root/epel
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
ius.repo的设置内容:
[Myrepos-ius]
name=CentOS-$releasever
baseurl=file:///root/ius
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
设置完毕分别运行一下命令:
yum clean all
yum makecache
yum repolist