- 部署yum仓库及NFS共享服务
- 1.yum仓库简介
- 1.1yum简介
- 1.2yum的实现过程
- 2.yum配置文件及命令
- 2.1主配置文件
- 2.2仓库设置文件
- 2.3日志文件
- 2.4yum命令详解
- 3.搭建仓库的方式
- 3.1搭建本地yum仓库
- 3.2搭建阿里云仓库
- 3.3ftp方式搭建云仓库
- NFS共享
- NFS简介
- NFS配置安装
- 常用选项
- 总结
yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间
为什么会有依赖关系的发生?
- 因为linux本身就是以系统简洁为自身优势,所以在安装操作系统的时候并没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。
- yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。
- 先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)
- 当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
位置:/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 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:自定义变量
这个配置最好不要去改它,避免不必要的麻烦
2.2仓库设置文件位置:/etc/yum.repos.d/*.repo //yum仓库文件位置
例子里是默认的yum仓库 是centos官方的yum源,需要联网才可以使用
[root@localhost yum.repos.d]# ls /etc/yum.repos.d/ bak CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-base.repo CentOS-fasttrack.repo CentOS-Vault.repo CentOS-CR.repo CentOS-Media.repo2.3日志文件
位置:/var/log/yum.log //日志文件
[root@localhost ~]# cat /var/log/yum.log //查看日志文件 Sep 10 21:03:49 Installed: httpd-tools-2.4.6-67.el7.centos.x86_64 Sep 10 21:03:49 Installed: mailcap-2.1.41-2.el7.noarch Sep 10 21:03:50 Installed: httpd-2.4.6-67.el7.centos.x86_642.4yum命令详解
| 命令 | 不加关键字 | 加入关键词、软件包、软件包组 |
|---|---|---|
| yum list | 显示所有可用包 | 单个的可安装包 |
| yum info | 显示所有可用包的信息 | 单个具体的信息 |
| yum search | 模糊查找所有的相关信息 | |
| yum whatprovides | 精确查找 | |
| 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 | 加入序号重新执行序号里的操作 |
软件仓库的提供方式
FTP服务:ftp://ip地址/站点里路径
HTTP服务:http://域名或者ip地址/站点里的路径
本地目录:file://绝对路径 (file:///mnt 此处第三个/为根目录)
#关闭防火墙和setenforce服务 [root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# setenforce 0 #挂载到/mnt目录 [root@localhost ~]# mount /dev/sr0 /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载 #切换到yum.repos.d 目录将自带的仓库移走 [root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# mkdir bak [root@localhost yum.repos.d]# mv *.repo bak #新建一个yum仓库文件 [root@localhost yum.repos.d]# vim centos7.repo [444] name=centos7 baseurl=file:///mnt enabled=1 gpgcheck=0 #yum list 检查仓库 无报错信息即可正常使用 #清理缓存 [root@localhost yum.repos.d]# yum clean all #/data/目录如果不存在,会自动创建 [root@localhost ]#yum -y install --downloadonly --downloaddir=/data/bind bind # 只下载 指定下载目录(如不存在会新建) 软件名3.2搭建阿里云仓库
国外云仓库比较慢,可以使用阿里云仓库代替
#切换到yum.repos.d 目录将自带的仓库移走 [root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# mkdir bak [root@localhost yum.repos.d]# mv *.repo bak [root@localhost yum.repos.d]# ls bak #新建aliyun仓库 [root@localhost yum.repos.d]# vim aliyun.repo [ali] name=aliyun baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/ gpgcheck=0 [epel] //epel源仓库 name=epel baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/ gpgcheck=0 [update] //更新包仓库 name=update baseurl=https://mirrors.aliyun.com/centos/7/updates/x86_64/ gpgcheck=03.3ftp方式搭建云仓库
服务端:192.168.254.20
客户端:192.168.254.40
服务端设置
[root@localhost ~]# yum install vsftpd.x86_64 -y
客户端设置
编写yum仓库文件
测试yum是否可以正常使用(安装个包)
NFS共享 NFS简介NFS(Network File System 网络文件服务)
NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。
通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源
NFS 也是 NAS 存储 设备必然支持的一种协议
NAS存储:
NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,
以完成远 程到本地的映射过程。在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,
前者用于 NFS 共享发布和访问,后者用于 RPC 支持。
手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。
特点:
采用TCP/IP传输网络文件
安全性低
简单易操作
适合局域网环境
NFS优势:节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率。
NFS配置安装NFS服务的实现依赖于RPC (Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。所以需要安装nfs-utils、 rpcbind 软件包来提供NFS共享服务,前者用于NFS共享发布和访问,后者用于RPC支持。
NFS的配置文件在/etc/exports位置当中格式为:共享目录的位置 客户机地址(权限选项)
安装nfs-utils、rpcbind
常用选项1.all_squash:所有访问用户都映射为匿名用户或用户组。 2.async :将数据先保存在内存缓冲区中,必要时才写入磁盘。 3.subtree_ check (默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限。 4.no_subtree_check:即使输出目录是一一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。 5.anonuid=xxx :指定NFS服 务器/etc/passwd文件中匿名用户的UID 6.anongid=xxx :指定NFS服务器/etc/passwd文件中匿名用户的GID
开启NFS服务程序
发布NFS共享目录
去客户机中访问NFS共享资源
自动/手动挂载NFS共享目录
验证服务,进入tmp目录,创建一个文件
服务端查看,文件出现
总结学会yum本地仓的搭建,阿里云仓的搭建,ftp服务和nfs服务



