yum简介
yum 是基于rpm构建的软件更新机制, 能够自动解决软件安装时的依赖关系。能大大节省日常工作中大量查找安装依赖包的时间
linux本身的简洁和自由也导致了在安装软件时不会很方便,linux操作系统在进行软件安装时并没有将所有库文件都进行编译。有些程序运行所必须的程序并不都在一个安装包里,就造成了会缺少依赖程序的情况,
yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。
yum的实现过程
yum安装需要有安装包, 首先在yum服务器上创建仓库,以及包的元数据文件
做yum元需要包含 packages 文件夹 (安装包) 和 repodata 文件夹(元数据)
常用仓库类型有两种
-
光盘的仓库基本仓库 比较常用的
-
epel扩展仓库 比较新
-
yum配置文件
/etc/yum.conf
配置文件中的的可用变量
$releasever: 当前OS的的版本号
$arch: CPU架构,如:aarch64, i586, i686,x86_64等
$basearch:系统基础平台;i386, x86_64
$contentdir:表示目录,比如:centos-8,centos-7
$YUM0-$YUM9:自定义变量
/etc/yum.repos.d
是yum仓库的文件位置 网络源
/var/log/yum.log 日志文件
yum命令详解
命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
---|---|---|
yum list | 显示所有可用包 | 单个的可安装包 |
yum info | 显示所有可用包的信息 | 单个具体的信息 |
yum search | \ | 模糊查找所有的相关信息 |
yum provides | \ | 精确查找 |
yum grouplist | 显示所有可用包组 | 显示具体的包组 |
yum groupinfo | 显示所有的包组具体信息 | 显示具体的包组的具体信息 |
yum install | \ | 安装具体软件包 |
yum groupinstall | \ | 安装具体软件包组 |
yum update | 所有软件升级 | 具体软件升级 |
yum group update | 所有包组升级 | 具体包组升级 |
yum remove | \ | 卸载具体软件 |
yum groupremove | \ | 卸载具体包组软件 |
yum history | 查看当前yum操作历史 | \ |
yum history undo | 加入序号卸载序号里安装的软件 | \ |
yum history redo | 加入序号重新执行序号里的操作 | \ |
查询
yum list 加软件名显示指定程序 不加 显示所有可用的包
yum info [软件名] 详细显示安装包信息 不加软件名显示所有包的详细信息
yum search [关键字] 根据关键字查找软件安装包 匹配所有包含关键字的安装包
yum provides [关键词] 用于知道命令但不知道具体安装包的情况
yum grouplist [包组名]
安装包组的查询 不加包组名 就是显示所有
yum groupinfo <包组名>
更详细显示安装包信息
yum安装升级
yum install [软件名]
yum groupinstall [包组名]
用于安装较大的一切程序 如给linux安装图形化桌面的时候
yum update 程序名 yum upgrade 程序名
更新单个文件 更新文件组
软件卸载
yum remove 程序名 必须加程序名称 卸载程序
但有缺点 无法移除相关依赖程序
yum groupremove 包组名
卸载包组
yum history
查看历史对程序的安装卸载之类的记录
yum history
yum history 还衍生出凄然的一些用法 上述命令 yum remove 无法移除依赖程序
查看你上述表可以使用 yum history undo 4 来移出去文件相关依赖程序
搭建yum仓库
本地yum仓库
关闭防火墙
systemctl stop firewalld
setenforce 0
服务端
yum install httpd -y
cd /var/www/html
mkdir centos7
mount /dev/sr0 centos7/ 将按文件库(光驱)挂载到 文件夹上(该文件夹通常存放网站上向公众展示的内容)
systemctl start httpd
客户端
cd /etc/yum.repos.d
mkdir bak
mv *.repo vak/ 将默认的网络源移到bak文件夹中减少干扰
vim http.repo 编辑本地源
[http]
name=http
baseurl=http://192.168.1.1/centos7 于192.168.1.1中centos7文件夹中获取安装包
gpgcheck=0
yum clean all 清理yum
yum makecache 重启获取源
yum install httpd -y 从192.168.1.1获取安装包以安装http
以ftp方式搭建云仓库
yum install vsftpd.x86_64 -y 安装vsftp服务
cd /var/ftp
ls
mkdir centos7
moutunt /dev/sr0 /var/ftp/centos7
客户端
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak
vim ftp.repo
[ftp]
name= ftp
baseurl=ftp://192.168.1.1/centos7
gpgcheck=0
yum clean all
yum malecache
yum insrall vsftp
FTP 文件传输协议
数据传输合适:二进制 和 文本
双通道:命令和数据连接 21命令端口(权限,认证) 20数据端口
两种模式 主动模式 被动模式
主动模式
客户端通过 tcp21 端口,向服务端发送请求, 客户主动开放 tcp20 双方进行数据传输
被动模式
客户端通过 tcp21 端口 向服务器发送请求 服务端通过 tcp21 端口向客户端发送一份随机开启的端口 随后被动等待客户连接
NFS
NFS优势:节省本地存储空间,将常用的数据,如:/home目录,存放在NFS服务器上且可以通过网络访问,本地终端将可减少自身存储空间的使用。
NFS工作原理
客户机请求程序调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
NFS工具
showmount
mount.nfs
服务端
yum install nfs-utils.x86_64 -y 安装nfs
vim /etc/exports 编辑相关配置文件
共享文件夹 允许访问的主机 (权限)
/data *
exportfs -V 显示当前主机的 nfs 共享文件夹
exportfs -r 刷新共享目录
客户端
远端客户机查看共享目录
showmount -e 服务器ip地址
mount 服务器ip地址:共享文件夹地址 挂载点
完成