目录
3.2 仓库设置文件:/etc/yum.repos.d/*.repo
YUM
一.YUM介绍
1.YUM定义
YUM(Yellow dog Updater,Modified):
- 基于RPM包构建的软件更新机制
- 可以自动解决依赖关系
- 所有软件包由集中到YUM软件仓库提供
2.YUM的实现过程
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
yum依赖于环境,依赖于服务端和客户端,允许跨网络
客户端:
- 配置文件
服务端:
- RPM包(存放在包文件夹Packages中)
- 元数据(存放在元数据文件夹repodata中,其中包含:目录(软件的目录),软件的依赖关系,软件的分组)
最终形成两个文件夹Packages(包文件夹一般取名packages)和repodata(元数据文件夹)
仓库类型:
- 光盘的仓库(基本仓库)
- epel 扩展仓库
3.YUM配置文件位置
3.1 yum主配置文件:/etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever #yum下载的RPM包的缓存目录, $basearch代表硬件架
构,$releasever系统版本比如7
keepcache=0 #是否保存缓存 0代表不保存 1代表保存
debuglevel=2 #调试级别
logfile=/var/log/yum.log #日志文件位置
exactarch=1 #是否允许不同版本的rpm安装
obsoletes=1 #update的参数,是否允许旧版本的运行
gpgcheck=1 #验证密钥,1表示验证
plugins=1 #是否允许插件,1代表允许
installonly_limit=5 #保存几个内核 5代表5个
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release
yum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号,如:8,7,6
$arch: CPU架构,如:aarch64, i586, i686,x86_64等
$basearch:系统基础平台;i386, x86_64 $contentdir:表示目录,比如:centos-8,centos-7 $YUM0-$YUM9:自定义变量
3.2 仓库设置文件:/etc/yum.repos.d/*.repo
二.YUM命令总结
命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
---|---|---|
yum list | 显示所有可用包 | 单个的可安装包 |
yum info | 显示所有可用包的信息 | 单个具体的信息 |
yum search | \ | 模糊查找所有的相关信息 |
yum whatprovides | \ | 精确查找 |
yum install | \ | 安装具体软件包 |
yum update | 所有软件升级,更新内核 | 具体软件升级 |
yum upgrade | 只更新软件包,但不更新内核 | 具体软件更新 |
yum remove | \ | 卸载具体软件 |
yum history | 查看当前yum操作历史 | \ |
yum history info | \ | 加序号列出某次事务的详细信息 |
yum history undo | \ | 加序号卸载序号里安装的软件 |
yum history redo | \ | 加序号重新执行序号里的操作 |
yum grouplist | 显示所有可用包组 | 显示具体的包组 |
yum groupinfo | 显示所有的包组具体信息 | 显示具体的包组的具体信息 |
yum groupinstall | \ | 安装具体软件包组 |
yum group update | 所有包组升级 | 具体包组升级 |
yum groupremove | \ | 卸载具体包组软件 |
三.YUM源地址
CentOS系统的yum源
#阿里云
https://mirrors.aliyun.com/centos/$releasever/
#腾讯云
https://mirrors.cloud.tencent.com/centos/$releasever/
#华为云
https://repo.huaweicloud.com/centos/$releasever/
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/
EPEL的yum源
#阿里云
https://mirrors.aliyun.com/epel/$releasever/x86_64
#腾讯云
https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
#华为云
https://mirrors.huaweicloud.com/epel/$releasever/x86_64
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64
#更新源
http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
四.搭建本地yum仓库
软件仓库的提供方式
- 本地目录:file://绝对路径(file:///mnt此处第三个/为根目录)
- HTTP服务: http://域名或者ip地址/站点里的路径
- FTP服务:ftp://ip地址/站点里路径
mount /dev/sr0 /mnt #挂载提供安装包
cd /etc/yum.repos.d #切换到固定目录
mkdir bak #建立备份文件夹
mv *.repo bak #将所有网络源移走,减少干扰
vim zhuo.repo #自建本地源的配置文件
[zhuo] #自定义仓库描述
name=zhuoer #自定义仓库名
baseurl=file:///mnt #指明仓库位置
gpgcheck=0 #不验证安全性(若为1则验证)
yum clean all #清理缓存
yum makecache #重新建立元数据
yum install bind -y #下载软件bind进行验证
搭建本地yum仓库脚本
#!/bin/bash
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak
mount /dev/sr0 /mnt
echo "[local]
name=local
baseurl=file:///mnt
gpgcheck=0
"> local.repo
yum clean all
yum makecache
echo -e "\E[1;35m本机yum仓库搭建完毕\E[0m"
五.实验:内网环境下http搭建yum仓库
由于是内网环境,虚拟机全部设为仅主机模式,无法连接外部网络如果想要下载httpd服务则需要搭建一个本地yum仓库
服务端IP地址为192.168.79.130;客户端IP地址为192.168.79.210
1.服务端搭建本地yum仓库下载httpd服务
2.服务端进入/var/www/html/添加挂载目录centos7,将光驱挂载到centos7目录下(也可以将光驱内的所有文件包复制到centos目录下)
3.服务端关闭防火墙,开启http服务
4.客户端搭建yum仓库
客户端设为仅主机模式
六.实验:内网环境下ftp搭建yum仓库
ftp可以使用内网也可以使用外网,此处演示内网环境, 由于是内网环境,虚拟机全部设为仅主机模式,无法连接外部网络如果想要下载ftp服务则需要搭建一个本地yum仓库
服务端IP地址为192.168.79.130;客户端IP地址为192.168.79.210
1.服务端搭建本地yum仓库并下载vsftpd服务
2.服务端进入 /var/ftp/ 目录下添加一个挂载目录centos7将光驱挂载到centos7目录
3.服务端关闭防火墙和selinux,开启vsftpd服务
4.客户端搭建本地yum仓库并下载vsftpd和ftp服务
5.客户端测试ftp服务是否正常
6.客户端搭建yum仓库
8.客户端测试:安装一个服务
NFS
一.NFS简介
1.NFS的定义
- NFS(Network File System 网络文件服务),是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。
- NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。(远端过程调用:自己没有这种功能,调用别人的功能)
- NFS 也是 NAS 存储 设备必然支持的一种协议,以完成远程到本地的映射过程。
- 在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。
2.NFS的特点
- 采用TCP/IP传输网络文件
- 安全性低
- 简单易操作
- 适合局域网环境
3.NFS的优缺点
- 优点:节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率。
- 缺点:由于NFS没有用户认证机制,而且数据在网络上明文传输,所以安全性很差,一般只在局域网中使用。
4.NFS的原理图
二.服务端NFS配置文件:/etc/exports
格式:共享目录(绝对路径) 客户机地址 (权限)
如 /share * 允许所有主机访问share目录 (权限)
客户机地址可以是主机名、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服务器也不检查其父目录的权限,这样可以提高效率。
三.实验:NFS共享存储服务配置
服务端IP地址为192.168.79.130;客户端IP地址为192.168.79.210
1.服务端安装nfs-utils与rpcbind软件包(此处我已安装
2.服务端新建共享目录并赋予权限
3.服务端编辑配置文件/etc/exports:设置共享目录的相关配置
4.服务端关闭防火墙并开启服务并查看rpcbind端口是否开启(默认为TCP端口111)
5.服务端查看共享目录详细信息
6.客户端安装nfs-utils与rpcbind软件包(同样此处我已安装
7.客户端查看服务端的共享文件
8.客户端将服务端共享目录挂载到本地
9.客户端关闭防火墙并开启服务10.测试是否能文件共享
在服务端创建一个1.txt文件,测试是否客户端能查看服务器新建文件
服务端:
客户端: