yum仓库及NFS共享

news2024/11/30 2:31:49

目录

一、yum仓库

(一)yum仓库简介

(二)实现过程

(三)yum命令

(四)搭建内网yum仓库

1.FTP服务搭建yum仓库

①服务端操作

②客户端操作

2.http服务搭建yum仓库

①服务端操作

②客户端操作

二、NFS文件共享

(一)NFS基本信息

(二)实验操作

1.创建共享目录

2.启动服务

3.配置NFS客户端

4.使用权限

(三)搭建一台NFS共享服务器

1.服务端开启NFS服务

2.创建共享文件

3.挂载使用


一、yum仓库

(一)yum仓库简介

Yum仓库(Yum Repository)是基于RPM包管理的Linux操作系统中用于存储和管理软件包的一个集中式资源库。在使用yum作为包管理器的系统(如CentOS、RHEL等)中,用户可以方便地通过yum工具从预先配置好的仓库中搜索、安装、更新或卸载软件包。

主要特点:

自动解决依赖关系: 相对于rpm来说,当用户尝试安装某个软件包时,yum会自动分析该软件包的依赖关系,并从仓库中下载所有必需的依赖包,确保软件能够正确安装和运行。

版本管理和更新: yum仓库中维护着软件包的不同版本,可以根据策略选择安装最新的稳定版或者指定特定版本的软件包。此外,yum还提供软件更新功能,可以检测并自动升级系统中的过期软件包到最新可用版本。

多个仓库支持: 用户可以在系统中配置多个yum仓库,这样可以从不同的来源获取软件包,例如官方仓库、社区仓库、私有仓库等。

GPG签名验证: yum支持对仓库内容进行GPG签名验证,以确保从仓库下载的软件包未被篡改和保证其来源可信。

缓存机制: yum具有本地缓存功能,它可以将已下载过的软件包元数据和文件保存在本地,从而提高后续操作的速度,减少网络传输。

(二)实现过程

先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。

yum实现安装服务的过程

查看yum的配置文件

[main]     #全局配置
cachedir=/var/cache/yum/$basearch/$releasever
#这行定义了yum下载和存储软件包元数据以及临时文件的缓存目录位置。其中 $basearch 表示系统的基本架构(如x86_64、i386等), $releasever 表示操作系统的发行版版本号。
keepcache=0
#当设置为0时,表示在安装或更新软件包后自动清理缓存中的软件包文件。如果改为1,则会保留所有已下载的软件包文件。
debuglevel=2
#设置yum运行时的调试级别。数字越高,输出的日志信息越详细。
logfile=/var/log/yum.log
#指定yum日志文件的位置,所有yum的操作记录都会写入这个文件。
exactarch=1
#当值为1时,yum将只安装与系统架构精确匹配的软件包。
obsoletes=1
#启用此选项意味着yum在执行更新操作时,会处理那些可能使其他已安装软件包变得过时(obsolete)的新软件包。
gpgcheck=1
#如果设置为1,yum会在安装软件包前验证其签名,确保软件包来源可信且未被篡改。
plugins=1
#启用yum插件功能,允许通过插件扩展yum的功能。
installonly_limit=5
#限制yum保留的最大旧版本数量,对于某些只能安装一个实例的软件包,yum最多只会保留最近的5个旧版本。
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
#提供了一个链接地址,当遇到yum相关的问题时,可以提交bug报告到CentOS官方的bug追踪系统。
distroverpkg=centos-release
#定义了用来检测和确定当前操作系统版本的关键软件包名称,对于CentOS系统来说,就是centos-release包。

这里的配置文件基本默认就可以,不需要我们去修改

(三)yum命令

yum repolist all列出所有仓库
yum list all列出仓库中所有软件包
yum  info  软件包名称查看软件包信息
yum  install  软件包名称安装软件包
yum reinstall 软件包名称重新安装软件包
yum update 软件包名称升级软件包
yum remove  软件包移除软件包
yum clean all清除所有仓库缓存
yum check-update检查可更新的软件包
yum grouplist查看系统中已经安装的软件包组
yum groupinstall 软件组安装指定的软件包组
yum groupremove 软件包组移除指定的软件包组
yum groupinfo 软件包组查询指定的软件包组信息
yum remove卸载具体软件
yum provides精确查找
yum history查看当前yum操作历史
yum history undo加入序号卸载序号里安装的软件
yum history redo加入序号重新执行序号里的操作

(四)搭建内网yum仓库

服务端192.168.83.30
客户端    192.168.83.40                    

检查两台机器防火墙与核心防护是否关闭,如果没有关闭执行systemctl  stop  firewalld   与setenforce  0 命令

1.FTP服务搭建yum仓库

①服务端操作

下载vsftpd软件,提供服务 :yum  install vsftpd  -y

开启vsftpd服务:systemctl  start  vsftpd

在ftp程序用户的家目录下新建一个目录

将光盘挂载到新建目录,为ftp用户提供安装包

②客户端操作

切换到yum程序目录:cd  /etc/yum.repos.d而后,创建一个目录mkdir  kysw

而后将yum的相关文件移动到新建目录中,防止信息干扰mv *.repo   kysw


新建一个仓库文件,以.repo结尾:vim  ftp.repo

[ftp]                                #仓库描述
name=ftp                             #仓库名称
baseurl=ftp://192.168.83.30/kysw     #安装包来源。通过ftp服务,连接到192.168.83.30
                                      的服务端.IP地址后面的“/”。相当于ftp程序用户的
                                      家目录/var/ftp
gpgcheck=0                           #不启用验证。0为不启用,1为启用

#gpgkey=file://公钥文件地址           #若启用验证需要指定公钥文件地址         

清理缓存、下载元信息:yum  clean all  &  yum  makecache

yum  install  tree  -y  验证一下

2.http服务搭建yum仓库

①服务端操作

下载httpd服务软件,yum  install httpd  -y  并开启

在/var/www/html/下新建一个文件夹,并将光盘挂下到该目录下mkdir   /var/www/html/http

②客户端操作

操作流程与FTP服务搭建yum仓库基本一致

切换到yum程序目录:cd  /etc/yum.repos.d而后,创建一个目录mkdir  http

而后将yum的相关文件移动到新建目录中,防止信息干扰mv *.repo   http

新建一个仓库文件,以.repo结尾:vim http.repo

注释:这里的baseurl信息中的IP地址后面的"/"就是/var/www/html,其它信息与ftp服务搭建yum仓库一致

清理缓存、下载元信息:yum  clean all  &  yum  makecache

下载软件验证一下  

二、NFS文件共享

早期网络想要在不同主机之间共享文件大多要用 FTP 协议来传输,但FTP 协议仅能做到传输文件却不能直接修改对方主机的资料数据,这样确实不太方便,于是便出现了NFS 开源文件共享程序:NFSINetworkFile Svstem)是一个能够将多台Linux 的远程主机数据挂载到本地目录的服务,属于轻量级的文件共享服务,不支持Linux与 Windows 系统间的文件共享

(一)NFS基本信息

NFS(Network File System)是一种分布式文件系统协议,允许网络中的不同计算机之间共享和访问文件资源。在Linux环境中,通过配置NFS服务,可以将一台服务器上的目录作为共享资源提供给其他客户端挂载和使用,实现跨主机的文件共享。

实现过程:

NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。(远端过程调用:自己没有这种功能,调用别人的功能)

NFS 也是 NAS 存储 设备必然支持的一种协议 以完成远 程到本地的映射过程。在 CentOS 7 系统中,需要 nfs-utils、rpcbind 软件包来提供 NFS 共享服务, 前者用于 NFS 共享发布和访问,后者用于 RPC 支持。

手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs

(二)实验操作

准备两台机器

NFS服务端192.168.83.30
NFS客户端    192.168.83.40                    

在centos7中,NFS服务的工具是默认安装了的

1.创建共享目录

先创建连个文件夹,在输入一些内容供NFS客户端读取

修改配置文件,定义要共享的目录及相应权限

这个配置文件位置在/etc/exports

配置内容格式为:共享目录    可以访问的主机地址(权限)

权限分类有以下几种

参数作用
ro只读模式(默认)
rw读写模式
root_squash当NFS 客户端使用 root 用户访问时,映射为 NFS 服务端的匿名用户
no_root_squash当NFS客户端使用 root 用户访问时,映射为NFS 服务端的 root 用户
all_squash不论 NFS 客户端使用任何帐户,均映射为 NFS 服务端的匿名用户
sync同时将数据写入到内存与硬盘中,保证不丢失数据。
async优先将数据保存到内存,然后再写入硬盘,效率更高,但可能造成数据丢失

下面我们来编辑配置文件,添加以下内容

2.启动服务

配置好文件后启动服务和配置文件

3.配置NFS客户端

客户端如果也是centos7的话,那么应该也是安装了nfs-utils工具包的(字符界面可能需要手动安装),直接挂载共享就可以了

挂载之前,先使用jshowmount 命令查看以下服务端的共享信息

-a :显示 NFS 服务端的共享列表
-e:显示本机挂载 NFS 资源的情况
-v:显示版本号

下一步,我们来进行挂载

使用mount命令

mount   对方IP地址:共享文件夹    挂载点

非指定用户是无法使用共享文件的

如果想永久挂载需要写道/etc/fstab文件中

192.168.83.30:/data           /opt             nfs                  defaults     _netdev           0            0
#IP地址:/共享文件名       #挂在点       #文件类型      #权限         #没网不加载   #不备份  #不检查

4.使用权限

此时,我们是有读写权限的

但是,我们创建文件的时候为什么还会显示失败呢?

那是因为对/data文件目录还没有权限。之前在介绍FTP服务的时候说过,我们的服务已经添加了相应的权相,但是对文件本身还没有权限,虽然我们是在客户端的root用户,但是,我们现在访问的是服务端的文件夹,root用户的超级管理员身份在服务端并没有效果,所以,还需要修改一下服务端的文件的权限

现在再去客户端创建文件就可以了

我们又发现,创建的文件属主和属组是一个陌生的用户nfsnobody,这就是之前说的

root_squash权限:当NFS 客户端使用 root 用户访问时,映射为 NFS 服务端的匿名用户

细心的人,在启动服务的时候就会发现后面有一排的权限

如何创建文件属主为root用户呢?很简单,修改一下权限就可以了

保存退出后需要重新加载一下配置文件,如果直接重启服务的话,正在操作的用户可能会中断,所以我们需要用exprotfs  -r  命令来刷新文件

可以看到,配置权限已经生效了,这个时候再来创建文件试试看

可以看到新建的文件属主还是root

那么如何将所有客户端新建文件都指定一个用户呢,需要设置anonuid和anongid权限

指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使用

首先在服务端上新建一个用户并指定uid号

修改配置文件,并刷新使其生效

这个时候我们再去创建文件

我们在服务端查看就可以发现,文件属主就是指定的用户

(三)搭建一台NFS共享服务器

准备三台机器

NFS服务端192.168.83.30
NFS客户端192.168.83.40
NFS客户端192.168.83.20

开始实验之前,还是确定防火墙和核心防护是否关闭,如果没有关闭需要手动关闭

1.服务端开启NFS服务

2.创建共享文件

先创建一个共享文件夹,再去写配置文件

添加一些内容供客户端读取

在这里注意修改文件夹权限:chmod   777  /data

配置完后刷新一下配置文件

在另外两台机器上下载并开启httpd服务

3.挂载使用

这个时候再去访问这两个网址就会得到相同的NFS服务器上的信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1392127.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电路原理1-线性电阻

前言:整理笔记基于清华大学于歆杰老师的《电路原理》,电路原理是基于无源负载和电源组成电路的分析方法。 1.基础数学知识 算术:数字之间的运算 代数:用变量和函数来代替数字 微积分:描述函数的累积效应&#xff0…

【Python数据可视化】matplotlib之设置子图:绘制子图、子图共享x轴坐标、调整子图间距、设置图片大小

文章传送门 Python 数据可视化matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容&#x…

Informer简单理解

一、输入层Encoder改进: 1、ProbAttention算法计算权值: 原Transformer中的注意力机制时间复杂度N^2,而Informer作为实时性要求高的长时间序列预测算法必然需要提高效率,降低时间开销。 1.简化K: 对每个Q不再与所有…

073:vue+mapbox 加载here地图(影像瓦片图 v3版)

第073个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载here地图的影像瓦片图。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共77行)相关API参考:专栏目标示例效果

Rust-Panic

什么是panic 在Rust中,有一类错误叫作panic。示例如下: 编译,没有错误,执行这段程序,输出为: 这种情况就引发了一个panic。在这段代码中,我们调用了Option::unwrap()方法,正是这个方…

Softmax回归(多类分类模型)

目录 1.对真实值类别编码:2.预测值:3.目标函数要求:4.使用Softmax模型将输出置信度Oi计算转换为输出匹配概率y^i:5.使用交叉熵作为损失函数:6.代码实现: 1.对真实值类别编码: y为真实值&#xf…

Java顺序表(2)

🐵本篇文章将对ArrayList类进行讲解 一、ArrayList类介绍 上篇文章我们对顺序表的增删查改等方法进行了模拟实现,实际上Java提供了ArrayList类,而在这个类中就包含了顺序表的一系列方法,这样在用顺序表解决问题时就不用每次都去实…

smartgit选择30天试用后需要输入可执行文件

突然有一天smartgit提示到期了,我按照以往那样删除license和preferences文件后,选择30天试用,弹出了需要选择git可执行文件。 我尝试选择了我的git.exe,发现根本不行,提示让我执行下git --version 执行过后提示我的.gi…

【Shell编程练习】编写 shell 脚本,打印 9*9 乘法表

系列文章目录 输出Hello World 通过位置变量创建 Linux 系统账户及密码 监控内存和磁盘容量,小于给定值时报警 猜大小 输入三个数并进行升序排序 编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态 系列文章目录编写 shell 脚本,打…

Vue3响应式系统(二)

Vue3响应式系统(一)https://blog.csdn.net/qq_55806761/article/details/135587077 六、嵌套的effect与effect栈。 什么场景会用到effect嵌套呢?听我娓娓道来。 就用Vue.js来说吧,Vue.js的渲染函数就是在effect中执行的: /*Foo组件*/ const…

动态路由协议

一、动态路由协议 动态路由协议,用在多个 Router 之间定期的、自动的、互相交换 Routes(路由信息,包含了网段信息、可达性信息、路径信息等),动态生成 Routing Table Entries,并最终达到全网的路由收敛&am…

Java项目:123SSM高校运动会信息管理系统

博主主页:Java旅途 简介:分享计算机知识、学习路线、系统源码及教程 文末获取源码 一、项目介绍 高校运动会信息管理系统基于SpringSpringMVCMybatis开发,主要用来管理高校运动会信息,系统分为管理员何运动员两种角色。系统主要功…

AI在广告中的应用——预测性定位和调整

营销人员的工作就是在恰当的时间将适合的产品呈现在消费者面前,从而增加他们购买的可能性。随着时间的推移,营销人员能够深入挖掘越来越精准的客户细分市场,他们不仅具备了实现上述目标的能力,而且这种能力还在呈指数级提升。在AI…

如何将github copilot当gpt4用

现在写代码已经离不开ai辅助了我用的是github copilot,一方面是因为它和vscode结合得比较好,另一方面就是copilot chat了。可以在不切换工具的情况下,问它问题,在copilot chat还在内测阶段的时候我就申请使用了(现在已…

【现代密码学】笔记9-10.3-- 公钥(非对称加密)、混合加密理论《introduction to modern cryphtography》

【现代密码学】笔记9-10.3-- 公钥(非对称加密)、混合加密理论《introduction to modern cryphtography》 写在最前面8.1 公钥加密理论随机预言机模型(Random Oracle Model,ROM) 写在最前面 主要在 哈工大密码学课程 张…

Python多线程爬虫——数据分析项目实现详解

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 ChatGPT体验地址 文章目录 前言爬虫获取cookie网站爬取与启动CSDN爬虫爬虫启动将爬取内容存到文件中 多线程爬虫选择要爬取的用户 线程池 爬虫 爬虫是指一种自动化程序,能够模…

Java基础知识整理,驼峰规则、流程控制、自增自减

写在开头 本文接着上一篇文章续写哈。Java基础知识整理,注释、关键字、运算符 在这一篇文章中我们总结了包括注释、关键字、运算符的Java基础知识点,今天继续来聊一聊命名规则(驼峰)、流程控制、自增自减。 一、命名规则 上一…

pygame学习(三)——支持多种类型的事件

大家好!我是码银🥰 欢迎关注🥰: CSDN:码银 公众号:码银学编程 实时事件循环 为了保证程序的持续刷新、保持打开的状态,我们会创建一个无限循环,通常使用的是while语句,w…

第二百六十九回

文章目录 概念介绍设置方法示例代码内容总结 我们在上一章回中介绍了Card Widget相关的内容,本章回中将介绍国际化设置.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里说的国际化设置是指在App设置相关操作,这样可以让不同国家的…

关于VScode的这个ssh的配置的经验

1.首先,我是因为重装了ubantu系统,不得不重新配置ssh 2.第一步,在本机的终端安装ssh插件: (1) (2)restart开启这个ssh端口 3.然后,就在vscode里面,安装哪个…