centos离线搭建yum源
一、yum源简介及搭建流程
1、什么情况需要搭建yum源
一般情况下,我们只会在内网环境下搭建yum源,因为连不上外网,每次安装包都依赖了其他的包,导致安装非常麻烦。
yum源就是把所有的安装包都下载放到内网环境下,对于在内网使用yum安装的同事来说,和在外网环境下没区别的。
2、搭建yum源流程
yum源有很多个库,每个库放的包都是不一样的,我们常用的是CentOS-7 - Base、epel、ubuntu等库。
外网使用这些库,我们只需要在/etc/yum.repos.d/目录下创建repo文件,在文件内写库对应的外网地址即可。
内网使用这些库,只需要把库对应的iso文件挂载到机器的某个目录下,然后在repo文件里写上对应的库路径。
举例来说,本文用的是epel库,我们需要把epel库里的所有包下载下来,然后在做成iso文件(当然也可以不做)。 而CentOS-7 - Base库下的包,我们直接使用Centos的iso镜像即可。
3、指向yum源原理
实际上,无论是通过mount挂载iso镜像,还是直接使用下载后的rpm源,最终都是指向如下图的目录。
自己解压iso文件,在repo文件中写入指向下图的目录,也是实现了搭建yum源。
所以说,在生产环境上,一般是用nginx或者ftp配置指向下图目录的地址,其他在同一网络的所有主机都可用使用该yum源。
二、centos搭建离线epel源
1、下载epel源,制成iso镜像文件
//查看可用使用的yum库
yum reponlist
//安装reposync和createrepo命令
yum install yum-utils //reposync命令在该包下
yum install createrepo
//下载epel(RHEL7)的repo文件
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
//下载epel库的源到/data目录。如果下载所有库的话,把-r去掉
reposync -r epel -p /data/
//制作本地仓库,完成后epel下除了Packages目录,多一个repodata目录
createrepo -v /data/epel
//把下载的包制作成iso镜像文件
mkisofs -r -o /data/centos7-epel.iso /data/epel
常用命令
//查看所有已启用的yum库
yum reponlist
//查看该命令来自哪个安装包,位于哪个包下。
//比如yum provides reposync,查看reposync命令属于哪个安装包下的
yum provides 命令
2、配置本地yum源的三种方式
1、下载的rpm包直接做yum源
vi /etc/yum.repos.d/offline-epel.repo
[epel]
name=epel
baseurl=file:///root/epel
enabled=1
gpgcheck=0
2、使用iso做yum源
//创建挂载点
mkdir -p /media/cdrom
//挂载iso文件到挂载点
mount -o loop /data/centos7-epel.iso /media/cdrom
//查看挂载状态
df -h
//vi /etc/yum.repos.d/offline-epel.repo文件中添加下面内容,
[epeliso]
name=epeliso
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
3、nginx配置yum源
//创建挂载点
mkdir -p /media/cdrom
//挂载iso文件到挂载点
mount -o loop /data/centos7-epel.iso /media/cdrom
//查看挂载状态
df -h
//nginx配置
server {
listen 8888;
server_name localhost;
charset utf-8; #设置中文字符集
location / {
root /media/cdrom;
autoindex on; #打开目录浏览功能
autoindex_exact_size off; #关闭字节显示(会以MB的方式显示)
autoindex_localtime on; #打开会显示文件上传的本地的时间(默认格林威治时间-8h)
}
}
//vi /etc/yum.repos.d/offline-epel.repo文件中添加下面内容,
//baseurl,如果是其他服务器配置yum源,直接指向yum源IP就可以。
[epeliso]
name=epeliso
baseurl=http://127.0.0.1:8888
enabled=1
gpgcheck=0
//配好offline-epel.repo文件后,重新生成下yum缓存
yum clean all
yum makecache