一、YUM概述
- YUM(Yellow dog Updater Modified)
- 基于RPM包构建的软件更新机制
- 可以自动解决依赖关系
- 所有软件包由集中的YUM软件仓库提供
二、准备安装源
2.1软件仓库的提供方式
- FFTP服务:ftp://……
- HTTP服务:http://……
- 本地目录:file://……
2.2 RPM软件包的来源
- CentOS发布的RPM包集合
- 第三方组织发布的RPM包集合
- 用户自定义的RPM包集合
2.3 构建CentOS 7 软件仓库
- RPM包来自CentOS7 DVD光盘
- 通过FTP方式提供给客户机
[root@localhost ~]# mkdir -p /var/ftp/centos7
[root@localhost ~]# cp -rf /media/cdrom/* /var/ftp/centos7
[root@localhost ~]#rpm -ivh /media/cdrom/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~l#systemctl enable vsftpd
2.4 Linux系统各家厂商用的安装源
- centos7和rhel7默认使用的时yum仓库源 ,软件包的结尾是".rpm"
- centos8和rhel 8可以使用dhf (是yum的行生产品)
- Ubuntu debian使用的是apt 软件包是以“.deb”结尾
三、yum下载方式
方式一: yum install --downloadonly mariadb #下载下来的安装包都是放在 /var/cache/yum/x86_64/7/ 目录下
方式二: yumdownloader --destdir=/opt mariadb mariadb-server #yumdownloader 仅下载指定软件包,参数 --destdir 是用来指定存放下载的安装包的目录
方式三:
yum的缓存功能:默认情况下,yum会在安装完软件之后,自动清理掉安装包。但是也可以通过设置,让yum不清楚安装后的安装包。
vim /etc/yum.conf 将配置中的keepcache=o 修改为 keepcache=1
此时下载好的软件包默认安置在:/var/cache/yum
yum相关的日志文件
/var/log/yum.log
四、yum 仓库源的三种搭建
4.1 搭建yum本地源的方式
本地源的地址可以修改成在线源
[test]
name=test
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
gpgcheck=0
enabled=1
搭建本地,在线混合yum仓库 #两个yum源的名字要做区分
[test1]
name=test1
baseurl=file:///mnt
gpgcheck=0
enabled=1
priority=1 #优先级,数字越小,优先级越高
[test]
name=test
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
gpgcheck=0
enabled=1
priority=2
4.2 搭建ftp yum仓库
准备两台虚拟机,一台用作服务端,提供下载库,一台作为客户端,建立yum仓库获取下载库的资源
第一步:服务端安装 vsftpd服务
yum install -y vsftpd
第二步:服务端在/var/ftp/ 下创建一个文件,并且挂载
该步骤涉及到ftp原理,用户远程访问时的,根目录就在 /var/ftp上,所以在此创建挂载目录
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# mount /dev/sr0 /var/ftp/centos7/
[root@localhost ftp]# systemctl start vsftpd #开启服务
第三步:客户端搭建ftp yum仓库
[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# mkdir repo.bak
[root@localhost yum.repos.d]# mv *.repo ./repo.bak/
[root@localhost yum.repos.d]# vim local.repo
systemctl stop firewalld
setenforce 0
4.3 下载的方式创建阿里云
搭建阿里云仓库
第一步:将我们创建的local.repo文件移动到repo.bak目录下(也可以是别的备份目录)
第二步:将可以连外网的系统打开,下载镜像
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
直接使用即可
五、NFS共享存储服务
-
NFS(Network File System)网络文件系统
-
依赖于RPC(远端过程调用)
-
需安装nfs-utils、rpcbind软件包
-
系统服务:nfs、rpcbind
-
共享配置文件:/etc/exports
-
5.1 使用NFS发布共享资源
安装nfs-utils、rpcbind软件包
[root@localhost ~]# yum -y install nfs-utils rpcbiny
[root@localhost ~]# systemctl enable nfs
[root@localhost ~# systemctl enable rpcbind
设置共享目录
[root@localhost ~]# mkdir -p /opt/wwwroot
[rdot@localhost ~]# vi /etc/exports
5.2 实验操作
NFS 的配置文件为/etc/exports
格式为:
共享的目录位置 客户机地址(权限选项)
软件包 (包括服务器端和客户端):
nfs-utils (nfs端口号 2049/tcp):共享服务
rpcbind (RPC端口号 111/tcp):远程共享调用
NFS 的配置文件为/etc/exports
格式为: 共享的目录位置 客户机地址(权限选项)
客户机地址可以是主机名、IP 地址、网段地址,允许使用“*”、“?”通配符。
“rw” 表示允许读写,“ro” 表示为只读。
sync 表示同步写入到内存与硬盘中。
no_root_squash 表示当客户机以root身份访问时赋予本地root权限(默认是root_squash)。
root_squash 表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户。
all_squash 所有访问用户都映射为匿名用户或用户组
async 将数据先保存在内存缓冲区中,必要时才写入磁盘。
subtree_check(默认) 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限。
no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。
5.2.1 在文件服务器使用 NFS 发布共享资源
1. 安装 nfs-utils、rpcbind 软件包
rpm -q rpcbind nfs-utils
yum -y install nfs-utils rpcbind
2. 设置共享目录
mkdir -p /opt/wwwroot
chmod 777 /opt/wwwroot
vim /etc/exports
/opt/wwwroot 192.168.111.0/24(rw,sync,no_root_squash)
/var/ftp/pub 192.111.10(ro) 192.168.4.110(rw)
/share *(rw,sync)
客户机地址可以是主机名、IP 地址、网段地址,允许使用“*”、“?”通配符。
“rw” 表示允许读写,“ro” 表示为只读。
sync :表示同步写入到内存与硬盘中。
no_root_squash : 表示当客户机以root身份访问时赋予本地root权限(默认是root_squash)。
root_squash :表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户。
其它常用选项
all_squash :所有访问用户都映射为匿名用户或用户组。
async :将数据先保存在内存缓冲区中,必要时才写入磁盘。
subtree_check(默认):若输出目录是一个子目录,则nfs服务器将检查其父目录的权限。
no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。
3. 启动 NFS 服务程序
#手动加载NFS共享服务时,应该先启动rpcbind,再启动nfs
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
[root@localhost ftp]# ss -antp | grep rpcbind #查看rpcbind端口是否开启,rpcbind服务默认使用tcp端口111
4.查看本机发布的 NFS 共享目录
showmount -e
5.2.2 在客户机中访问 NFS 共享资源
1. 安装 nfs-utils、rpcbind 软件包
rpm -q rpcbind nfs-utils
yum -y install nfs-utils rpcbind
systemctl start rpcbind
systemctl enable rpcbind
#查看 NFS 服务器端共享了哪些目录
showmount -e 192.168.111.10
2.手动挂载 NFS 共享目录
mkdir /myshare
mount 192.168.111.10:/opt/wwwroot /myshare
mount #确认挂载结果,也可以使用df -Th
3. 设置自动挂载
vim /etc/fstab
192.168.111.10:/opt/wwwroot /myshare nfs defaults,_netdev 0 0
_netdev :表示挂载设备需要网络
4. 强制卸载 NFS
如果服务器端NFS服务突然间停掉了,而客户端正在挂载使用时,在客户端就会出现执行 df -h 命令卡死的现象。这个时候直接使用umount 命令是无法直接卸载的,需要加上 -lf 选项才能卸载。
umount -lf /myshare
六、小结
基于以前的YUM仓库,本章更加详细的讲解了三种YUM仓库的配置方法,有本地以及在线YUM源,来配置成型,再以nfs来进行共享资源存储,最后进行实验操作进行生产环境的操作。