centos7.6同步rpm包,搭建本地yum源
由于开发环境只有局域网,没法使用网上的各种YUM源,来回拷贝rpm包安装麻烦,还得解决依赖问题。可以将其他yum源服务器的包同步到本地,可以使用rsync命令直接镜像过来,这里使用的是网易的镜像。
具体镜像方法:
1、进入要存储rpms文件的本地目录,比如/root/rpms/extras目录
2、访问http://mirrors.163.com/centos/目录可以发现有很多的数字目录,这些都是不同的centos版本,但是较老的版本一般都不支持同步了,现在可以同步的只有centos7.6。
3.进入7.6.1810目录,可以看到有很多的子目录
image.png
4.一般我们要同步的是os(与本地yum源的x86_64对应)、updates、extras,当然你也可以全部同步。我们目前要同步extras目录,那么就进入extras目录,选择适合自己的路径,我是x86_64架构的电脑,进入x86_64,所有的包都在Packages下,如下图:
image.png
5.找到正确的路径后就可以开始同步了,在本地输入rsync -avrt --delete rsync://mirrors.163.com/centos/7/extras/x86_64/Packages/ /root/rpms/extras
image.png
注意Packages后面的/,如果没有这个会把Packages目录也拉取下来
如果命令找不到,使用yum安装rsync
yum install -y rsync
6.同步完成之后,使用createrepo命令创建元数据。
createrepo 命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据
命令使用:
image.png
参数说明:
image.png
image.png
创建元数据:
createrepo -v -p /root/rpms/extras
image.png
创建完成之后,可以看到 /root/rpms/extras目录下多了个repodata目录。
image.png
如果该目录下的rpms文件发生变化,可以使用以下命令更新索引,也可以删除repodata目录重新创建索引,不过如果需要创建索引的文件过多,重新创建需要花费很长的时间
createrepo -update /root/rpms/extras
使用同样的方法同步os,updates目录。
所有的目录创建完成索引之后,删除/etc/yum.repos.d目录下的所有文件,创建base..repo,文件名随意。
vi base.repo
参考内容如下:
[base]
name=base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=file:///root/rpms/x86_64
enabled=1
gpgcheck=0
[updates]
name=updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=file:///root/rpms/updates
enabled=1
gpgcheck=0
[extras]
name=extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=file:///root/rpms/extras
enabled=1
gpgcheck=0
#additional packages that extend functionality of existing packages
[centosplus]
name=centosplus
baseurl=file:///root/rpms/centosplus
gpgcheck=1
enabled=0
具体的文件的位置依赖实际的存储位置。
yum clean all #清除原来的yum缓存
yum makecache #生成新的yum缓存
yum listrepo #查看支持的repo
不过这样搭建的源只能供本机使用,如果需要作为yum服务器,简单的方法是添加httpd服务,将rpms目录移动到/var/www/html目录下,同时修改base.repo的内容,步骤如下:
yum install -y httpd
mv /root/rpms /var/www/html
systemctl start httpd.service
systemctl enable httpd.service
修改base.repo内容,参考如下:
[base]
name=base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://192.168.1.80/rpms/x86_64
enabled=1
gpgcheck=0
[updates]
name=updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://192.168.1.80/rpms/updates
enabled=1
gpgcheck=0
[extras]
name=extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://192.168.1.80/rpms/extras
enabled=1
gpgcheck=0
#additional packages that extend functionality of existing packages
[centosplus]
name=centosplus
baseurl=http://192.168.1.80/rpms/centosplus
gpgcheck=0
enabled=0
注:192.168.1.80为本机的局域网IP地址,需要按照实际情况填写。
enable: 1 使用该源 0不使用该源
gpgcheck:1 进行检测 0 不进行检测
使用浏览器输入地址:http://192.168.1.80/rpms,查看是否有相应的内容,如果提示没有权限,需要设置/var/www/html/rpms目录的权限
chmod 755 /var/www/html/rpms
image.png
yum clean all #清除原来的yum缓存
yum makecache #生成新的yum缓存
yum listrepo #查看支持的repo
完成。
额外:添加mysql源
下载文件:
image.png
这个是centos7的,其他的linux系统不支持
下载完成之后,创建/var/www/html/mysql目录,将下载的文件解压到该目录,同样的方式创建RPMS文件元数据,
创建完成之后,修改base.repo文件,添加mysql源,清除原来的yum缓存,创建新的yum缓存,之后就可以使用以下命令直接安装MySQL了
yum install -y mysql-community-server