目录
简介
yum,全称“Yellow dog Updater, Modified”,
是一个专门为了解决包的依赖关系而存在的软件包管理器。
类似于windows系统的中电脑软件关键,
可以一键下载,一键安装和卸载。yum 是改进型的 RPM 软件管理器,
它很好的解决了 RPM 所面临的软件包依赖问题。yum 在服务器端存有所有的 RPM 包,
并将各个包之间的依赖关系记录在文件中,当管理员使用 yum 安装 RPM 包时,
yum 会先从服务器端下载包的依赖性文件,通过分析此文件从服务器端一次性下载所有相关的 RPM 包并进行安装。
一、YUM仓库服务
1.1 YUM概述
- 基于RPM包构建的软件更新机制
- 可以自动解决依赖关系
- 所有软件包由集中的YUM软件仓库提供
1.2 linux系统各家厂家用的安装源
- centos7和rhel7默认使用的时yum仓库源 ,软件包的结尾是".rpm"
- centos8和rhel 8可以使用dhf (是yum的衍生产品)
- Ubuntu debian使用的是apt 软件包是以“.deb”结尾
1.3 yum命令
选项 | 说明 |
yum list | 显示所有可用包(可以后跟包名,显示具体的软件包) |
yum info | 显示所有可用包的信息(后跟包名,显示单个包的相关信息) |
yum search | 模糊查找所有的相关信息 |
yum whatprovides | 精确查找 |
yum install | 安装具体软件包 |
yum update | 具体软件升级 |
yum upgrade | 具体软件更新17 |
yum remove | 卸载具体软件 |
yum history | 查看当前yum操作历史 |
yum history info | 加序号列出某次事务的详细信息 |
yum history undo | 加序号卸载序号里安装的软件(比yum remove 软件名,清除的更加彻底) |
yum history redo | 加序号重新执行序号里的操作 |
yum grouplist | 显示所有可用包组(后跟包组名,可以显示具体) |
yum groupinfo | 显示具体的包组的具体信息 |
yum groupinstall | 安装具体软件包组 |
yum group update | 具体包组升级 |
yum groupremove | 卸载具体包组软件 |
1.4 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/x86_64/7/base(epel、extras、updates)四个文件其中
yum相关的日志文件
/var/log/yum.log
1.5 部署YUM软件仓库
yum仓库源的三种搭建方式
- 本地源的地址可以修改成在线源
[test]
name=test
baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
gpgcheck=0
enabled=1
- 搭建本地源仓库
mount /dev/cdrom /mnt
>>/etc/yum.repos.d目录下的 *.repo的 文件
mkdir repos.bak #备份
mv * repos.bak #备份
vim local.repo
[local] #文件名(仓库名)
name=local #描述(仓库门)
baseurl=file:///mnt #指定光盘挂载目录作为软件仓库源
enabled=1 #开启此yum源,此为默认项,可省略 是否启用
gpgcheck=0 #不去检查软件序列号
priority=1 #优先级,数字越小,优先级越高
- 搭建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/sdrom /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
vim local.repo
[local]
name=local
baseurl=ftp://192.168.23.40/centos7 #指向路径ftp服务端地址以及挂载点位置,因为ftp原理原因,用户远程访问时,根目录就在/var/ftp上 所以直接指定挂载点相对路径就可以
enabled=1
gpgcheck=0
注意:三种方式搭建完yum仓库后都要执行下 yum clean all && yum makecache 命令清理重建yum源
扩展:搭建阿里云仓库
第一步:将我们创建的local.repo文件移动到repo.bak目录下(也可以是别的备份目录)
第二步:将可以连外网的系统打开,下载镜像
wget -O /etc/yum.repos.d/CentOS-Base.repo
#如果没有wget命令 可以先 yum install -y wget 先安装一下
安装完成后会有新的镜像文件出现
二、NFS共享存储服务
2.1 NFS共享存储服务概念
NFS是一种基于TCP/IP传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。
对于大多数负载均衡群集来说,使用NFS协议来共享数据存储是比较常见的做法,NFS也是NAS存储设备必然支持的一种协议。但是由于NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只能在局域网中使用。
NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。
所以需要安装 nfs-utils、rpcbind 软件包来提供 NFS共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。
2.2 NFS配置环境
- NFS 的配置文件为/etc/exports
格式为:
共享的目录位置 客户机地址(权限选项)
软件包(包括服务器端和客户端):
nfs-utils (nfs端口号 2049/tcp):共享服务
rpcbind (RPC端口号 111/tcp):远程共享调用
2.3 使用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.23.0/24(rw,sync,no_root_squash)
#共享目录地址 允许访问的地址段 权限限制
客户机地址可以是主机名、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
4 查看本机发布的 NFS 共享目录
showmount -e
2.4 在客户端访问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.23.40
2. 手动挂载 NFS 共享目录
mkdir /myshare #创建一个空目录用作共享目录挂载点
mount 192.168.23.40:/opt/wwwroot /myshare #挂载共享目录到此挂载点
3. 设置自动(永久)挂载
vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Aug 14 22:31:17 2024
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=a5146261-b9f5-4fad-b1f6-4b931198939a /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
192.168.23.40:/opt/wwwroot /myshare nfs defaults,_netdev 0 0
#_netdev:表示挂载设备需要网络
永久挂载设置完后 要重启系统或者使用 mount -a 刷新文件才能生效
4. 强制卸载 NFS
如果服务器端NFS服务突然间停掉了,而客户端正在挂载使用时,在客户端就会出现执行 df -h 命令卡死的现象。这个时候直接使用umount 命令是无法直接卸载的,需要加上 -lf 选项才能卸载。
umount -lf /myshare