当前位置: 首页 > news >正文

部署yum仓库

1 理论

1.1 什么是yum

YUM(Yellowdog Updater Modified):是一个基于RPM的软件包管理器,能够从指定服务器自动下载RPM包并且安装,可以处理软件之间的依赖关系,一次性安装所有依赖的软件包,无需一个个下载安装。

1.2 yum的工作原理

yum的工作需要两部分来合作,一部分是yum服务器,还有就是client的yum工具。下面分别介绍两部分工作原理。

yum服务器

所有要发行的rpm包都放在yum服务器上以提供别人来下载,rpm包根据kernel的版本号,cpu的版本号分别编译发布。yum服务器只要提供简单的下载就可以了,ftp或者httpd的形式都可以。yum服务器有一个最重要的环节就是整理出每个rpm包的基本信息,包括rpm包对应的版本号,conf文件,binary信息,以及很关键的依赖信息。在yum服务器上提供了createrepo工具,用于把rpm包的基本概要信息做成一张"清单",这张"清单""就是描述每个rpm包的spec文件中信息。

yum client端

client每次调用yum install或者search的时候,都会去解析/etc/yum.repos.d下面所有以.repo结尾的配置文件(即yum源),这些配置文件指定了yum服务器的地址。yum会定期去"更新"yum服务器上的rpm包"清单",然后把"清单"下载保存到yum自己的cache里面,根据/etc/yum.conf里配置(默认是在/var/cache/yum下面),每次调用yum装包的时候都会去这个cache目录下去找"清单",根据"清单"里的rpm包描述从而来确定安装包的名字,版本号,所需要的依赖包等,然后再去yum服务器下载rpm包安装。(前提是不存在rpm包的cache)

1.3 rpm

RPM 全名 RedHat Package Managerment,是由Red Hat公司提出,被众多Linux发行版本所采用,是一种数据库记录的方式来将所需要的软件安装到到Linux系统的一套软件管理机制。

2.yum的一系列操作

2.1 rpm安装软件

选项-ivh

注:rpm安装虽然不能安装依赖,但可以检测依赖

2.2 yum安装软件包

2.3 yum仓库的位置

注:光盘现在挂载了media下了,也可以挂载到别的地方,只需要有一组rpm包有地方放置,另外针对这些包要生成仓库数据(repodata)

2.4 yum仓库的配置文件

vim CentOS-Media.repo

2.5 yum程序的主配置文件(边安装,边下载)

注:yum仓库可以有多个,只要缓存出来,就知道是哪个仓库安装的

2.6 仓库文件目录

注:在一个系统里仓库允许有好多个

阿里、腾讯、163、华为,用哪个都可以

仓库在本地光盘本身就有、就不用找其它的仓库了

2.7 如何编辑本地的仓库文件(repository)

2.8 yum安装不加-y

2.9 用yum查询一些软件包

注:查询当前仓库的信息

注:查某一个包的详细信息

2.10 卸载软件包

注:尽量不要删除被依赖的其它包

2.11 更新软件包

2.13 操作过的yum指令,yum history

2.14 以组的方式安装包

安装桌面化 yum -y groupinstall "GNOME桌面"

注:关机重启后,任然是字符界面

链接后重启,直接进入图形化界面

3.创建本局域网内的yum仓库(ftp、http)

3.1 ftp做仓库

101做服务器

102做客户端

yum makecache创建缓存

3.2 http做仓库

网站的目录的数据在/var/www/html 在里面创建centos7的目录,把包文件拷贝进去

repodata父目录所在的位置

4 如何把互联网仓库下载到本地

注:用这种方式把所有的包都下载下来

注:两个工作线程处理数据,每个工作线程处理一部分的数据,内核越多同时处理的数量越多

5 NFS

NFS(N:网络 F:文件S:系统)网络文件系统

xfs ntfs 本地文件系统

gfs:分布式

/share 192.168.10.0/24 (rw,sync,no_root_squash)

exportfs -

showmount -e

nfs安全性和可靠性不好,Gluster-FS允许多台

相关文章:

  • kotlin 中的字符
  • 注意力机制和Transformer模型各部分功能解释
  • WPF框架,修改ComboBox控件背景色 ,为何如此困难?
  • TTL 232难兄难弟对比
  • 虚拟机怎么额外搭建两个Redis节点,配置多个 Redis 实例
  • 这些数据可被Modbus采集,你还不知道???
  • 算法金 | 一个强大的算法模型:t-SNE !!
  • 【Spine学习12】之 事件帧
  • Java开发的构建神器:Maven以及如何安装部署Maven
  • 保姆级小白就业人工智能(视频+源码+笔记)
  • C#心跳机制客户端
  • 批量生产千万级数据 推送到kafka代码
  • 智能车联网安全发展形势、挑战
  • 从零开始理解 XML 和 JSON 的区别
  • 计算机视觉全系列实战教程:(十)图像的几何变换:平移 旋转 翻转 缩放 仿射等变换
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 77. Combinations
  • flask接收请求并推入栈
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • JS实现简单的MVC模式开发小游戏
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Selenium实战教程系列(二)---元素定位
  • Spring Cloud Feign的两种使用姿势
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • 程序员最讨厌的9句话,你可有补充?
  • 机器学习中为什么要做归一化normalization
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 详解移动APP与web APP的区别
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • Spring第一个helloWorld
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​linux启动进程的方式
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #{}和${}的区别?
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (13)Hive调优——动态分区导致的小文件问题
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (23)Linux的软硬连接
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (42)STM32——LCD显示屏实验笔记
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (一)SpringBoot3---尚硅谷总结
  • (转)scrum常见工具列表
  • (轉)JSON.stringify 语法实例讲解
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .bat文件调用java类的main方法
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .net通用权限框架B/S (三)--MODEL层(2)