一、在开始搭建自己的YUM仓库之前,先来了解下如何获取RPM包
在默认配置下使用yum命令安装完软件后安装包是不会保留的,如果想在本地也留存一份安装包,只需要将yum配置文件/etc/yum.conf中的keepcache=0改为1即可,这样安装包都会留存在cachedir所指定的目录中
[root@yum-server ~]# vim /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever #这行为原有固定格式 keepcache=1 #表示开启缓存功能
该目录下还会根据不同的yum源创建不同的目录,软件包通过哪个源安装的就会保存在哪个目录中,同时相关依赖包也会自动下载
[root@yum-server ~]# yum clean all #先清理旧的缓存 [root@yum-server ~]# yum makecache #创建新的缓存区 [root@yum-server ~]# yum -y update #通过“更新”的方式来下载yum包的缓存
注意:通过yum -y update缓存的包是对于本机之前已有的包进行更新,所以缓存下来的包也是之前安过的包,并不是所有yum仓库的包(整个yum仓库包你想想得多大)。
拓:如果仅仅只是想下载软件包而不进行安装,只需要加--downloadonly选项即可,示例:
[root@yum-server ~]# yum install httpd --downloadonly --downloaddir=/data/packages
二、自建YUM本地仓库:
1、首先建立一个目录用于存放安装包,然后使用createrepo来创建repository仓库,如果系统里没有该命令的话需要先进行createrepo的安装
[root@yum-server ~]# mkdir -p /yum/repo [root@yum-server ~]# find /var/cache/yum/x86_64/7/ -iname "*.rpm" -exec cp -rf {} /yum/repo/ \; [root@yum-server ~]# yum install createrepo -y #安装createrepo功能 [root@yum-server ~]# createrepo /yum/repo/ #将该目录制作成软件仓库
2、命令执行成功后会在该目录下创建一个repodata目录
3、创建.repo配置文件指向到本地仓库的路径,注意文件名一定要是.repo结尾
[root@yum-server ~]# vim /etc/yum.repos.d/update.repo [update] name=centos update baseurl=file:///yum/repo #file协议用于本主机拉去本地yum源,该主机的配置这句!!! #baseurl=http://192.168.22.133/yum/repo #http协议用于其他机器拉取该机的yum源,其他主机的配置这句!!! #baseurl=ftp://192.168.22.133/update #ftp协议用于其他机器与本机开启ftpd功能!!! gpgcheck=0 enabled=1
拓:如果用ftp方式的话,需开启ftp,且需将缓存的文件夹提前拷到ftp的目录共享下
[root@yum-server ~]# mkdir /var/ftp/update
[root@yum-server ~]# cp /yum/repo /var/ftp/updata
[root@yum-server ~]# yum -y install vsftpd
[root@yum-server ~]# mv /etc/vsftpd/vsftpd.conf{,.bak}
[root@yum-server ~]# vim /etc/vsftpd/vsftpd.conf
# 开启匿名用户登录
anon_upload_enable=YES
anon_mkdir_write_enable=YES
[root@yum-server ~]# systemctl restart vsftpd
4、可做测试
方法一:通过看yum仓库情况查看新建的yum源
[root@yum-server ~]# yum repolist
方法二:通过查看缓存包的个数来看
[root@yum-server ~]# ls /yum/repo | wc -l