一、使用场景

很多企业都会自建yum仓来便于企业内部的rpm包安装,这样在安装软件时就可以利用局域网内的高速带宽进行下载和安装rpm包,缩短了通过公网下载的长时间等待。

二、yum与rpm的说明

首先需要对yum与rpm包本身以及他们之间的关系进行一些说明。rpm本身是一个包管理器,所以它具备一个管理器的打包、安装查询、升级、卸载、校验、数据库管理这些基本功能,这就解释了为什么我们在安装一个rpm包前使用rpm -qpi /path/name.rpm能查到这个包中的信息,其中如果出现 Relocations: (not relocatable)这个提示,说明这个rpm包再安装过程中是不允许更改安装位置的。

使用rpm命令安装最让人头疼的问题就是软件包之间的依赖关系,使用yum工具会自动处理我们安装过程中包之间依赖关系 ,它只是一个前端的工具,并不能替代rpm包管理器。我们有没有想过,yum为什么会知道包之间的相互依赖关系呢?yum本身并不会知道包之间的依赖关系,而包之间的依赖关系等元数据,会存放在repodata这个文件中。以光盘为例,当我们使用mount /dev/cdrom /media命令后,就会在/media/下看到该目录,所以这就解释了在自定义yum仓时为什么repodata文件的路径就是yum仓baseurl的所在路径。

repodata文件中的repomd.xml就存放着各个rpm包之间的关联信息,而TRANS.TBL存放着rpm包的分组信息

而客户端在使用yum命令时,会先下载yum的配置文件,从中找到yum仓的路径,再下载repodate里的元数据,而后安装rpm包

三、yum配置文件详解

通过上面,我们知道yum是一个前端工具程序,和其他程序一样自身都有配置文件,其中就包含了yum仓的位置指向。yum的配置文件分为主配置段(/etc/yum.conf),和仓库配置段(/etc/yum.repos.d/*.repo),这么设计是因为yum仓可以有多个,如果都写在/etc/yum.conf文件中,不便于查看,所以有了仓库配置段,yum工具会将所有在/etc/yum.repos.d/目录内,以.repo结尾的文件来作为配置文件。我们可以在/etc/yum.repos.d/下为每一个yum仓定义一个.repo文件,或者在一个.repo文件中分段表示多个yum仓,.repo文件中第一行为repoID,且此repoID不能重复,这就是为什么上图下载的yum配置文件名为base的原因。

四、搭建步骤

通过上面可以知道,使用yum安装rpm包需要有repodata目录,该目录可以通过yum createrepo <director>来创建,但是有时本地服务器可能没有安装createrepo命令,又没有yum仓,以下,我们就以这种情况为例来介绍yum仓的搭建:

1.使用本地光盘充当yum源安装createreop命令

(1)放入光盘,使用mount /dev/cdrom /media 将光盘内的目录挂载到/media目录下,

(2)使用vim /etc/yum.repos.d/dvd.repo 创建一个名为dvd.repo的配置文件

[base]——repoID  不能重复

name——任意字符串

baseurl——指定yum仓的位置,本地文件使用协议未file://,后面的/media为yum仓路径(repodata在/media/目录下)

enable——是否启用此yum仓,1表示启用;0禁用

gpgcheck——gpg检测,1为检测;0为不检测,出于安全rpm包在发行时会用自己的私钥加密,并发布公钥,/media/目录下RPM-GPG-KEY-CentOS-6就为用户的公钥,如果gpgcheck值为1,就需要导入公钥,否则无法安装,公钥位置为前一张图所示

cost——开销值,也可以不写,不写默认为1000。前面说过yum仓可以有多个,通过cost值大小来设置yum仓的优先顺序

(3)创建好后,输入yum repolist,可以看到yum仓已经被识别

2.安装并启动httpd服务

使用yum install httpd 安装httpd程序,安装完后并启用httpd服务,通过netstat -ntl查看80端口是否正常侦听,需要通过http协议访问的安装包必须放在/var/www/html目录内。

3.复制二进制rpm包到/var/www/html目录内,并创建repodate

(1)使用mirror命令从公网下载一个镜像,放置/var/www/html/内,下载后的目录为openstact-juno

(2)进入/var/www/html/openstact-juno 目录删除镜像本身自带的repodata(此步骤是为测试createrepo)

(3)使用createrepo /var/www/html/openstact-juno 创建新的repodata目录,创建过程中可以看到他在抽取生成新的元数据

(4)此时,局域网内通过浏览器输入 http://ip/filename 就能看到结果了

五、本地yum仓验证

验证本地yum仓是否正常对外提供服务,可以在局域网内另找一台host或使用本host来进行验证,本例继续使用原有host

1.输入 vim /etc/yum.repos.d/openstack-juno.repo 创建一个配置文件,为方便测试,不检测gpgcheck

2.此时yum repolist中就包含新的openstack-juno

3.使用yum list all | less 找一个openstack-juno内的yum包,再使用 yum install openstack-ceilometer-compute.noarch 安装,可以从repository看到,openstack-juno已被使用,此致,操作完成

转载于:https://blog.51cto.com/arkling/1786571

Linux自建yum仓及相关知识详解相关推荐

  1. linux 子域dns,linux下搭建DNS子域及相关授权详解

    linux下搭建DNS子域及相关授权详解forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 for ...

  2. linux下搭建DNS子域及相关授权详解

    linux下搭建DNS子域及相关授权详解 forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 fo ...

  3. linux做子域dns,linux下搭建DNS子域及相关授权详解

    linux下搭建DNS子域及相关授权详解 forward功能是本地无法解析的域名,转发给指定DNS服务器 forward only; 所有无法解析的域名,都转发给指定DNS服务器,必须有解析结果 fo ...

  4. 数据库及相关知识详解大全

    友情提示以下内容是对数据库以及相关知识所做的一个阐述,内容较多需多花费些各位看官宝贵时间,不过全是干货以及一些小的实例,我相信各位点进来的看官都会有所收获. 数据库介绍 什么是数据库? 数据库(Dat ...

  5. 工业相机参数之帧率相关知识详解

    点击上方"小白学视觉",选择加"星标"或"置顶"重磅干货,第一时间送达 工业相机是机器视觉系统的重要组成部分之一,在机器视觉系统中有着非常重 ...

  6. 并查集的相关知识详解 Come baby!!!

    一:并查集的相关知识 这道题用到了并查集,所以我就学了一下并查集,所以把自己的见解也分享给大家(建议 先看视频 再浏览 博客 再自己敲一遍 学习效率高而已,我总是乱着来 以为看几篇博客就会了,其实最后 ...

  7. 工业相机参数之帧率相关知识详解:

          工业相机是机器视觉系统的重要组成部分之一,在机器视觉系统中有着非常重要的作用.工业相机已经被广泛应用于工业生产线在线检测.智能交通,机器视觉,科研,军事科学,航天航空等众多领域.     ...

  8. 第28节 防火墙相关知识详解

    目录 1 防火墙概述 1.1 防火墙基本概念 1.2 与路由器对比 1.3 防火墙的基本功能 1.4 衡量防火墙性能的5大指标 2 区域隔离 2.1 防火墙区域概念 2.2 防火墙隔离思路 2.3 拓 ...

  9. 线阵相机调帧率_(转)工业相机参数之帧率相关知识详解

    Exposure and Sensor Readout 相机上的图像采集过程包括两个截然不同的部分.第一部分是曝光.曝光完成后,进行第二部分Readout过程即从传感器的寄存器中读出数据并传送出去(R ...

  10. 浮点数的表示及相关知识详解

    二进制小数: 点左边的位的权是2的正幂,点右边的位的权是2的负幂.刚好小于1的数,如0.111111将用简单的表达法1.0-ε来表示这样的数值. IEEE浮点数:定点表示法不能很有效地表示非常大的数字 ...

最新文章

  1. 创建 Pool VIP - 每天5分钟玩转 OpenStack(122)
  2. python读取文件-python读取大文件
  3. BZOJ1012|JSOI最大数maxnumber|线段树
  4. 深度学习中的问题汇总(持续更新...)
  5. Seata 的AT模式需求实战_04
  6. Influxdb中Select查询请求结果涉及到的一些数据结构
  7. python中的点的作用_Python基础学习中关键点的作用(三),python,重点,之,函数,3
  8. 精益画布_这6本书让你成为精益高手
  9. canvas绘制视频封面
  10. Python+OpenCV:特征匹配(Feature Matching)
  11. 文件的基本管理和XFS文件系统备份恢复
  12. AI智能电话机器人源码搭建原理及步骤
  13. Centos7下载linux内核源码
  14. python系列之supervisor进程管理
  15. 用Java检验统一社会信用代码是否为真
  16. JAVA毕业设计html5在线医疗系统计算机源码+lw文档+系统+调试部署+数据库
  17. 线下门店如何进行私域运营
  18. 第一性原理计算筛选本征二维磁性材料
  19. 堡垒主机内控管理平台产品方案介绍
  20. 关于指数运算,以一有趣的应用题简单展开。

热门文章

  1. aspxgridview将所选项导出ASPxGridViewExporter1
  2. JSTL的一些使用规范,坑
  3. Spring的三种注入方式
  4. jquery 获取父窗口的元素、父窗口、子窗口
  5. ffffffffffffffffff
  6. dede自定义内容模型会员投稿显示不了
  7. 利用common-fileupload组件实现java上传下载
  8. 对 Sea.js 进行配置 seajs.config
  9. Spring mybatis thymeleaf 基础操作,实现数据展示,修改,删除,查询
  10. docker+elasticsearch的安装