软件仓库的提供方式
- FTP服务:ftp://...
- HTTP服务:http://...
- 本地目录:file://...
一,构建本地 Yum 仓库
1,Vmware为例,构建环境
2,挂载光驱设备
[root@localhost ~]# mkdir /mydvd #创建仓库目录
[root@localhost ~]# mount /dev/cdrom /mydvd # 挂载
[root@localhost ~]# ls /mydvd # 查看仓库目录
3,书写客户端配置文件
[root@localhost ~]# rm -rf /etc/yum.repos.d/* #删除多余的配置文件,以免影响自己配置的文件
[root@localhost ~]# vim /etc/yum.repos.d/mydvd.repo #创建 yum 配置文件 mydvd.repo
[centos] # 名称
name=myrpm # 对仓库的信息描述
baseurl=file:///mydvd # 指定本地仓库的地址,挂载在/mydvd 目录中
gpgcheck=0 # 是否进行 gpg 签名验证,1 验证 0 不验证,基本都为0不验证
enabled=1 # 是否使用这个源,1 表示使用,这个配置可以省略不写,默认是等于 1 的
4,修改配置文件,完成开机自动挂载
[root@localhost ~]# vim /etc/fstab # 打开配置文件,添加以下一行
/dev/cdrom /mydvd iso9660 defaults 0 0
5,执行命令,检测挂载是否成功
# 检测挂载是否成功
[root@localhost ~]# mount -a #如果已经挂载,可以先卸载,在执行命令,会重新挂载
# 执行卸载命令
[root@localhost ~]# umount /mydvd # 卸载
# 测试 yum 是否成功
[root@localhost ~]# yum -y install bind # 软件包能正常下载
用 yum 命令下载一个软件包,能正常下载,则本地 yum 配置成功
二,构建网络Yum(ftp访问)
虚拟机A:提供仓库内容(构建网络服务,提供仓库内容)
虚拟机B:进行访问仓库内容,可以直接得到需要的软件包
虚拟机A(192.168.88.240):提供仓库内容(FTP服务)
关闭防火墙和selinux
1.构建FTP服务
[root@server ~]# yum -y install vsftpd # 下载支持FTP服务的软件包
[root@server ~]# systemctl restart vsftpd # 启服务
[root@server ~]# systemctl enable vsftpd # 设置开机自启动
2.通过FTP提供仓库内容
# 在 /var/ftp/ 创建一个目录,用于挂载yum仓库,和本地yum仓库一样
# 这个目录必须在 /var/ftp/ 下面,ftp 服务才能访问到
# 后面设置开机自动挂载,和本地yum仓库配置一样,在/etc/fstab配置文件中修改挂载点为当前目录路径即可
[root@server ~]# mkdir /var/ftp/mydvd
3.创建 yum 配置文件,名字随便起,必须以.repo结尾
[root@server ~]# vim /etc/yum.repos.d/nsd.repo
[centos] # 名称
name=myrpm # 对仓库的信息描述
baseurl=ftp://192.168.88.240/mydvd # 指定本地仓库的地址,以ftp服务访问仓库
gpgcheck=0 # 是否进行 gpg 签名验证,1 验证 0 不验证,基本都为0不验证
enabled=1 # 是否使用这个源,1 表示使用,这个配置可以省略不写,默认是等于 1 的
虚拟机B(192.168.88.5):进行访问仓库内容
关闭防火墙和selinux
# 在虚拟机B上只需要配置yum配置文件即可,指定yum仓库的地址是A下的/var/ftp/mydvd
[root@pc2 ~]# vim /etc/yum.repos.d/mydvd.repo
[centos] # 名称
name=myrpm # 对仓库的信息描述
baseurl=ftp://192.168.88.240/mydvd # 指定仓库的地址,以ftp服务访问仓库
gpgcheck=0 # 是否进行 gpg 签名验证,1 验证 0 不验证,基本都为0不验证
enabled=1 # 是否使用这个源,1 表示使用,这个配置可以省略不写,默认是等于 1 的
[root@pc2 ~]# yum clean all #清空Yum的缓存
[root@pc2 ~]# yum repolist # 能看到仓库信息,以及rpm包数量
[root@pc2 ~]# yum -y install httpd # 能正常下载软件包
软件包能正常下载,网络Yum配置成功
三,构建 自定义仓库
1,将自己下载的软件包,构建为Yum仓库。
2,完整的Yum仓库需要有:
1,众多的软件包
2,仓库数据文件(仓库清单)
# 创建目录,将自己下载的软件包放在目录中
[root@server ~]# mkdir /other # 创建目录,存放rpm软件包
[root@server ~]# ls /other # 能看到很多 rpm 软件包
# 仓库数据文件,构成软件包的必要条件
[root@server ~]# createrepo /other # 生成仓库数据文件
创建yum仓库配置文件,(/etc/yum.repos.d/other.repo),可以是ftp服务,也可以搭建本地仓库,然后设置开机自动挂载,参考上面本地和网络仓库的搭建方法
,3,自定义Yum仓库的更新:(重点知识)
- 仓库数据文件的更新
2. Yum仓库缓存的更新
# 当自定义软件仓库的rpm包有变动时(增加或减少),要对 yum 仓库的数据文件做更新,才能重新识别变动后的 yum 仓库中的软件包
[root@server ~]# mv /other/sl-5.02-1.el7.x86_64.rpm /root #在仓库中移走一个rpm包到root下
[root@server ~]# createrepo --update /tools/other/ # 更新仓库数据文件
[root@server ~]# yum makecache # 更新缓存数据
[root@server ~]# yum repolist # 查询发现仓库中rpm包数量比之前少一个
四 构建http服务访问仓库
虚拟机A(192.168.88.240):提供仓库内容(Web服务)
1.构建Web服务
[root@server ~]# yum -y install httpd
[root@server ~]# systemctl restart httpd
[root@server ~]# systemctl enable httpd
2.通过Web提供仓库内容
[root@server ~]# mkdir /var/www/html/dvd # 创建仓库目录
[root@server ~]# mount /dev/cdrom /var/www/html/dvd # 挂载
3.设置开机自动挂载
[root@server ~]# vim /etc/fstab # 打开配置文件
/dev/cdrom /var/www/html/dvd iso9660 defaults 0 0
4.设置yum仓库配置文件
[root@server ~]# vim /etc/yum.repos.d/dvd.repo
[centos]
name=linux
baseurl=http://192.168.88.240/dvd
enabled=1
gpgcheck=0
虚拟机B(192.168.88.5):进行访问仓库内容 (web服务)
1.构建Web服务
[root@pc2 ~]# yum -y install httpd
[root@pc2 ~]# systemctl restart httpd
[root@pc2 ~]# systemctl enable httpd
2.设置yum配置文件,以http访问虚拟机A上的Yum仓库
[root@pc2 ~]# vim /etc/yum.repos.d/mydvd.repo
[centos]
name=linux
baseurl=http://192.168.88.240/dvd
enabled=1
gpgcheck=0
3.查看仓库数据
[root@pc2 ~]# yum repolist
总结:Yum仓库有变动时,都可以用到的命令
[root@server ~]# createrepo --update /tools/other/ # 更新仓库数据文件
[root@server ~]# yum makecache # 更新缓存数据
[root@server ~]# yum clean all # 清空Yum的缓存
[root@server ~]# yum repolist # 查询仓库数据