文章目录
前言
yum概述
YUM (Yellow dog Updater Moddified)
基于 RPM 包构建的软件更新机制
可以自动解决依赖关系
所以软件包由集中的YUM软件仓库提供
软件仓库的提供方式
FTP服务: ftp://…
HTTP服务: http://…
本地目录: file://…
CentOS发布的RPM包集合
第三方组织发布的RPM包集合
用户自定义的RPM包集合
yum配置文件
基本设置
位置:/etc/yum.conf
[root@localhost]# /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 ###验证秘钥
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
仓库设置文件
位置:/etc/yum.repos.d/*.repo
[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
日志文件
位置:/var/log/yum.log
[root@localhost ~]# cat /var/log/yum.log
Jan 13 21:20:29 Updated: rpcbind-0.2.0-49.el7.x86_64
Jan 13 21:20:30 Updated: 1:nfs-utils-1.3.0-0.68.el7.2.x86_64
Jan 13 21:37:14 Installed: httpd-tools-2.4.6-97.el7.centos.2.x86_64
Jan 13 21:37:14 Installed: mailcap-2.1.41-2.el7.noarch
Jan 13 21:37:15 Installed: httpd-2.4.6-97.el7.centos.2.x86_64
yum命令
查询软件包命令
#显示可用的安装包
[root@localhost ~]# yum list httpd
#显示安装包详细信息
[root@localhost ~]# yum info [软件名]
查询软件包组命令
#安装包组的查询 不加包组名 就是显示所有
[root@localhost ~]#yum grouplist [包组名]
#不加包组名显示全部
[root@localhost ~]# yum groupinfo <包组名>
yum安装升级
#安装软件包
[root@localhost ~]# yum install httpd
#安装包组名
[root@localhost ~]# yum groupinstall gnome desktop
#更新安装包,可以单个也可以全部 后面加具体名称就是单个更新,不加就是全部更新。但是首先你要有更新的包组库否则也无法更新。
[root@localhost yum.repos.d]# yum upgrade
#组包更新
[root@localhost yum.repos.d]# yum groupupdate
软件卸载
#卸载已安装的软件必须加软件名
[root@localhost yum.repos.d]# yum remove httpd
#查看历史的使用记录,选择ID 1,2,3,4,5,可以使用yum history undo 4 进行卸载,这样对比remove好处是可以将所有的依赖都删除
[root@localhost yum.repos.d]# yum history
[root@localhost .ssh]# yum history undo 3 //3代表id号
#如果后悔 卸载 可以使用两种方式
yum history redo 4 (重新安装一遍)
yum history undo 6 (反悔卸载等于重新安装一遍)
搭建yum仓库
搭建本地yum仓库
将光驱中的镜像文件进行挂载
[root@localhost ~]# mount /dev/cdrom /mnt/ ###把光盘挂载到/mnt目录下
[root@localhost ~]# df -Th ###查看磁盘挂载情况
切换到 yum.repo.d 目录 将自带的源仓库移走 避免冲突
[root@localhost ~]# cd /etc/yum.repos.d ###切换至cd /etc/yum.repos.d
[root@localhost yum.repos.d]# mkdir repos.bak ###创建一个文件夹,名为repos.bak
[root@localhost yum.repos.d]# mv *.repo repos.bak ###把自带以.repo结尾的源,转移到新建的repos.bak文件夹下
新建yum仓库文件
[root@localhost yum.repos.d]# vim local.repo ###新建yum仓库文件
[local] ###仓库类别
name=local ###仓库名称
baseurl=file:///mnt ###指定URL 访问路径为光盘挂载目录(第三个“/”代表根)
enabled=1 ###开启此yum源,此为默认项,可省略
gpgcheck=0 ###不验证软件包的签名
删除yum缓存并更新
[root@localhost yum.repos.d]# yum clean all && yum makecache ###删除yum缓存并更新
验证
[root@localhost ~]# yum install -y httpd
ftp方式搭建云仓库
服务端:192.168.146.30
客户端:192.168.146.40
服务端安装vsftp服务
[root@localhost ~]# yum install -y vsftpd
服务端切换到 ftp目录下创建一个目录
服务端将光驱文件拷贝到 centos7 中
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# mount /dev/sr0 /mnt
[root@localhost ~]# cp -rf /mnt/* /var/ftp/centos7/ &
[root@localhost ~]# mkdir /var/ftp/other
[root@localhost ~]# cd /var/ftp/other
[root@localhost other]# createrepo -g /mnt/repodata/repomd.xml ./
服务端开启相关服务,关闭防火墙
[root@localhost other]# systemctl stop firewalld.service
[root@localhost other]# setenforce 0
[root@localhost other]# systemctl start vsftpd
客户端配配置
[root@localhost ~]# cd /etc/yum.repo.d
[root@localhost yum.repo.d]# mkdir bak.repo
[root@localhost yum.repo.d]# mv CentOS-* bak.repo
[root@localhost yum.repo.d]# vim centos7.repo
[centos7]
named=centos7
baseurl=ftp://192.168.146.30/centos7
enabled=1
gpgcheck=1
gpgkey=ftp://192.168.146.30/centos7/RPM-GPG-KEY-CentOS-7
[other]
name=centos7
baseurl=ftp://192.168.146.30/other
enabled=1
gpgcheck=0
清理缓存、更新并验证
[root@localhost ~]# yun clean all && yum makecache
验证:
[root@localhost ~]# yum install -y httpd
NFS网络文件服务
NFS (网络文件服务)
NFS是一种基于TCP/IP传输的网络文件系统协议,最初由 sun公司开发。通过使用NES协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源
NFS 也是NAS 存储设备必然支持的一种协议
NAS存储
NFS 服务的实现依赖于RPC ( Remote Processcall,远端过程调用)机制,以完成远程到本地的映射过程。在centos 7系统中,需要安装nfs-utils、 rpcbind软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。手动加载NFs共享服务时,应该先启动rpcbind,再启动nfs。
端口号
nfs端口号2049
RPC瑞口号111
特点
- 采用TCP/IP传输网络文件
- 安全性低
- 简单易操作
- 适合局域网环境
常用选项
rw 表示允许读写
ro 表示为只读
sync 表示司步写入到内存与硬盘中
no_root_squash 表示 当客户机以root身份访问时赋予本地root权限(默认是root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限
root_squash 表示客户机用root用户访问该共享目录时,将root用户映射成置名用户
其它常用选项
all_squash 所有访问用户都l映射为[匿名用户或用户组
async 将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据subtree_check(默认) 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限
no subtree_check
即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率
多台机器同时访问
实验要求:1台NFS服务器 3台客户机可以同时访问并且获得相同的页面
- 实验步骤:
安装nfs和rpcbind软件修改配置文件设置共享创建共享目录
开启服务
客户端验证共享目录可访问
在服务器上进行配置
rpm -q rpcbind nfs-utils
yum install -y nfs-utils rpcbind
vim /etc/exports
#NFS的配置文件为/etc/exports,文件内容默认为空.(无任何共享)
/ opt/web 192.168.10.0/24 (rw, sync,no_root_squash)
systemctl start rpcbind
###需要先启动rpc服务,[因为nfs要向rpc注册端口
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
[ root@localhost web] #netstat -anpu l grep rpc
udp 0 0 0.0.0.0 : 111 0.0.0.0:*
24525/ rpcbind
[ root@localhost web] # rpcinfo -p localhost
###查看nfs向rpc注册的端口信息
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 l udp 55627 status
[ root@localhost web]# exportfs -v ##验证结果
/web
192.168.245.0/24(sync, wdelay, hide, no_subtree_check , sec=sys,rw,secure, no_root_squash,no_all_squash)
exportfs -r//刷新结果
[root@localhost web]# showmount -e localhost //验证共享
Export list for localhost: / web 192.168.245.0/24
切换到客户端上进行配置
[root@localhost ~]# yum insall -y nfs-utils rpcbind
[ root@localhost ~]# showmount -e 192.168.10.17//'客户端验证共享Export list for 192.168.245.100:
/ web 192.168.245.0/24
[ root@localhost ~] # yum -y install httpd
[root@localhost ~]# systemctl start httpd ##启动web服务
统一配置
[root@localhost ~ ]mount -t nfs 192.168.86.10:/opt/web /var/www/html
[ root@localhost ~ ] # curl 127.0.0.1 /成功访问主页内容
hello world !
[root@localhost ~]# echo "this is kgc " >>/var/www / html/ index..html
//客广端修改主页文件
[ root@localhost web] # cat index.html //服务器端会同步this is kgc
同理可得,服务端写入或修改内容,客户端也会同步
df -h #查看挂载情况
在其他虚拟机配置同样的客户端配置 也可或得同样结果
修改/etc/fstab实现自动挂载:
192.168.10.17 :/opt/web /var/ www/html nfs defaults,_netdev 0 0
defaults, _netdev说明这是一个网络设备
注意:NFS ‘客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端VFS服务突然间停掉了,那么在客户端就会出现执行df -h 命令卡死的现象。这个时候使用umount命令是无法直接卸载的,需要加上 -lf才能卸载
-l表示解除正在繁忙的文件系统,-f表示强制。
[ root@localhost ~]#umount /var / www / html ###客户端卸载时会卡住
[ root@localhost ~]# umount -lf /var/www/ html ###加lf参数成功卸载
其他nfs文件:
/var/lib/nfs/etab 记录NFS分享出来的目录的完整权限设定值
/ var/ lib/nfs/xtab 记录曾经登录过的客户端信息
总结
1.了解yum仓库
2.如何配置yum仓库
3.NFS网络文件服务