yum仓库详解(命令+搭建)

news2025/2/25 5:15:14

目录

一、初步了解yum

1、yum简介

2、yum实现过程

二、yum配置文件及命令

1、 yum配置文件

1.1 主配置文件

1.2 仓库设置文件

 1.3 日志文件

2、yum命令详解

三、搭建仓库的方法

1、搭建本地yum仓库

2、搭建阿里云仓库(http方式外网环境)

3、ftp方式搭建云仓库

4、http方式搭建yum仓库

四、存储类型

五、工作环境

1、误将rpm软件删除

2、自行打包后建立元数据

3、epel源  本地使用

4、离线安装软件


一、初步了解yum

1、yum简介

yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间 为什么会有依赖关系的发生 因为linux本身就是以系统简洁为自身优势,所以在安装操作系统的时候并没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。

YUM 的前身是 YUP(Yellow dog Updater,Yellow dog Linux 的软件更新器),最初由 TSS 公司(Terra Soft Solutions,INC.)使用 Python 语言开发而成,后来由杜克大学(Duck University)的 Linux 开发队伍进行改进,命名为 YUM(Yellow dog Updater,Modified)。 要成功使用 YUM 机制来更新系统和软件,需要有一个包含各种 rpm 安装包文件及其依 赖软件的软件仓库(repository),提供软件仓库的服务器也称为“源”服务器。在客户机中只 要正确指定软件仓库的地址等信息,就可以通过对应的“源”服务器来安装或更新软件

2、yum实现过程

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

  •  yum需要依赖于环境,依赖于服务端和客户端,允许跨网络

服务器:

  • RPM包 (Packages文件夹中)

  • 元数据(repodata文件夹:目录(软件的目录),软件的依赖关系,软件的位置)

客户端的配置文件中

  • baseurl=地址 一定要写到到 这两个文件夹 repodata packages 的上级目录

最终形成两个文件夹Packages (包文件夹一般取名packages)和 repodata(元数据文件夹)

仓库类型:

  • 光盘的仓库基本仓库 比较常用的

  • epel扩展仓库 比较新

二、yum配置文件及命令

1、 yum配置文件

1.1 主配置文件

位置:/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:  自定义变量

1.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.repo

 1.3 日志文件

位置:/var/log/yum.log                  //日志文件

[root@localhost yum.repos.d]# cat /var/log/yum.log //查看日志文件
Jun 23 11:03:16 Installed: apr-1.4.8-3.el7.x86_64
Jun 23 11:03:16 Installed: apr-util-1.5.2-6.el7.x86_64
Jun 23 11:03:16 Installed: httpd-tools-2.4.6-67.el7.centos.x86_64
Jun 23 11:03:16 Installed: mailcap-2.1.41-2.el7.noarch

2、yum命令详解

命令不加关键字加入关键词、软件包、软件包组
yum list显示所有可用包单个的可安装包
yum info显示所有可用包的信息单个具体的信息
yum search\模糊查找所有的相关信息
yum provides\精确查找
yum grouplist显示所有可用包组显示具体的包组
yum groupinfo显示所有的包组具体信息显示具体的包组的具体信息
yum install\安装具体软件包
yum groupinstall\安装具体软件包组
yum update所有软件升级具体软件升级
命令不加关键字加入关键词、软件包、软件包组
yum remove\卸载具体软件
yum groupremove\卸载具体包组软件
yum history查看当前yum操作历史\
yum history undo加入序号卸载序号里安装的软件\
yum history redo加入序号重新执行序号里的操作\

三、搭建仓库的方法

本地yum仓库 没有网络的情况下, 光盘

软件仓库的提供方式

  • FTP服务:ftp://ip地址/站点里路径
  • HTTP服务:http://域名或者ip地址/站点里的路径
  • 本地目录:file://绝对路径 (file:///mnt 此处第三个/为根目录)

1、搭建本地yum仓库

①首先将光驱中的镜像文件进行挂载(先将虚拟机的光盘载入)

[root@localhost/]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost /]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 96G 5.2G 91G 6% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 13M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 xfs 497M 172M 326M 35% /boot
tmpfs tmpfs 407M 12K 407M 1% /run/user/42
tmpfs tmpfs 407M 0 407M 0% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt

②切换到 yum.repo.d 目录 将自带的仓库移走,多个开启仓库文件可能会造成冲突无法使用

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir repo.bak
[root@localhost yum.repos.d]# mv *.repo repo.bak/
[root@localhost yum.repos.d]# ls
repo.bak

③新建yum仓库文件

[root@localhost yum.repos.d]# vim local.repo
[local]
name=local
baseurl=file:///mnt
enable=1
gpgcheck=0

④yum list 检查仓库 无报错信息即可正常使用。

[root@localhost yum.repos.d]# yum clean all && yum makecache

2、搭建阿里云仓库(http方式外网环境)

国外云仓库比较慢,可以使用阿里云仓库代替

①切换到 yum.repo.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仓库

[ali]
name=aliyun
#baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/                  
//开启哪个都可以正常使用,这边主要解释变量的作用
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/    
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=0


#小火车
[root@centos7 ~]#yum -y install epel-release
[root@centos7 ~]#yum -y install sl
[root@centos7 ~]#sl -a


#牛
[root@localhost ~]#yum install -y install cowsay
[root@localhost ~]#cowsay hello

3、ftp方式搭建云仓库

 ftp可以使用内网也可以使用外网,此处演示内网环境, 由于是内网环境,虚拟机全部设为仅主机模式,无法连接外部网络如果想要下载ftp服务则需要搭建一个本地yum仓库

服务端IP地址:192.168.80.111

客户端IP地址:192.168.80.112

①服务器搭建本地yum仓库并下载vsftpd服务

②服务端进入 /var/ftp/目录下添加一个挂载点centos7,将光驱挂载在centos7目录

③服务端关闭防火墙和selinux,开启vsftpd服务

④客户端搭建本地yum仓库并下载vsftpd和ftp服务

⑤客户端检测ftp服务是否正常

⑥客户端搭建yum仓库

⑦客户端测试:安装一个服务

4、http方式搭建yum仓库

 由于是内网环境,虚拟机全部设为仅主机模式,无法连接外部网络如果想要下载httpd服务则需要搭建一个本地yum仓库

服务端IP地址为192.168.132.111

客户端IP地址为192.168.132.112

①服务端搭建本地yum仓库下载httpd服务

②服务端进入/var/www/html/添加挂载目录centos7,将光驱挂载到centos7目录下(也可以将光驱内的所有文件包复制到centos目录下)

③服务端关闭防火墙,开启http服务

④客户端搭建yum仓库

四、存储类型

存储类型

存储类型分为三种

  • 直连式存储:Direct-Attached Storage,简称DAS

  • 网络附加存储:Network-Attached Storage,简称NAS

  • 存储区域网络:Storage Area Network,简称SAN

DAS:存储和主机是直连的,家用电脑,服务和硬盘直连,存储和主机在一台机器上

SAN:有一定距离,主机核存储设备距离先对较远 ,只提供空间不提供文件系统,管理等其他软件服务,只相当于多了一块硬盘

NAS:存储在远程,文件系统也在远程,这块空间,你可以直接访问上面的文件,你只能看到文件,文件共享NFS FTP 等都是NAS

五、工作环境

1、误将rpm软件删除

进入进入解决模式

选择1 ,继续

输入

rpm -ivh  /run/install/repo/Packages/rpm-4.11.3-25.e17.x86_64.rpm  --root=/mnt/sysimage/

2、自行打包后建立元数据

mount /dev/sr0 /mnt/
cp  /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm 
mkdir test
mv tree-1.6.0-10.el7.x86_64.rpm  test/
cd test
mkdir packages
mv tree-1.6.0-10.el7.x86_64.rpm packages/
createrepo -v test
cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak/

vim tree.repo
[tree]
name=tree
baseurl=file:///data/test
gpgcheck=0

yum clean all
yum makecache
yum install tree -y

3、epel源  本地使用

没有外网  又想使用这个epel源      

[root@localhost ~]#yum install epel-release
#安装epel源    生成epel仓库文件
[root@localhost ~]# reposync -r epel -p /root/
#下载同步epel源  根据epel仓库文件去找目录

[root@localhost ~]# yum -y install createrepo
#安装建立元数据命令
[root@localhost ~]# createrepo -v /root/epel
#建立元数据    软件目录  依赖关系  
[root@localhost ~]# ls
anaconda-ks.cfg  epel
[root@localhost ~]# cd epel/
[root@localhost epel]# ls
#查看元数据



mkisofs -r -o  /root/xxx.iso  /data/centos7/epel 
制作成镜像

4、离线安装软件

[root@localhost yum.repos.d]# yum install nginx --downloadonly --downloaddir=/data/
[root@localhost http]#yum install nginx --downloadonly --downloaddir=/nginx/
--downloadonly  #只下载相关包默认至某一目录
--downloaddir=绝对目录路径  #下载到某一目录  

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

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

相关文章

搜索经典题——填充 9*9矩阵

题目:给定一个九行九列矩阵,填充矩阵元素,要求: 1、每一行每一列,每个小九宫格(图片画粗的地方就是)不能包含相同元素 2、每一行,每一列,每个小九宫格均会完整出现1-9的数…

pycharm学生认证免费使用专业版

进入pycharm官网Monthly and yearly plans with JetBrains Toolboxhttps://www.jetbrains.com/store/?fromMenu#discounts ​​​ 按照要求填写,但是如果遇到这个提示,恭喜你,你的学校获得了美国商务部认证。 ​ 遇到这个不要慌&#…

Spring Boot - Application Events 的发布顺序_ApplicationStartingEvent

文章目录 概述Code源码分析 概述 Spring Boot 的广播机制是基于观察者模式实现的,它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦,使得应用程序中的不同组件可以独立地改变和复用逻辑,而无需直接进行通信。 …

残差网络 ResNet

目录 1.1 ResNet 2.代码实现 1.1 ResNet 如上图函数的大小代表函数的复杂程度,星星代表最优解,可见加了更多层之后的预测比小模型的预测离真实最优解更远了, ResNet做的事情就是使得模型加深一定会使效果变好而不是变差。 2.代码实现 impo…

java版微信小程序商城 免 费 搭 建 java版直播商城平台规划及常见的营销模式有哪些?电商源码/小程序/三级分销

涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis …

用通俗易懂的方式讲解:使用 LlamaIndex 和 Eleasticsearch 进行大模型 RAG 检索增强生成

检索增强生成(Retrieval-Augmented Generation,RAG)是一种结合了检索(Retrieval)和生成(Generation)的技术,它有效地解决了大语言模型(LLM)的一些问题&#x…

车载音频EMI的产生及典型音频功放AW836XX的解决方案

之前针对 eCall的文章中有提到D类音频功放需要关注EMI问题(点击文章回看《车载eCall系统音频应用解决方案》),在此展开此问题并寻求解决方案。 1. EMI定义与分类 电磁干扰(Electromagnetic Interference,EMI&#xff…

企业为什么要选择软件定制开发?

引言:定制开发的兴起 在商业竞争日益激烈的今天,企业领导者们面临着一个重要的抉择:是选择通用软件解决方案,还是探寻更贴合企业需求的定制开发路径? 在企业决策软件解决方案时,通用软件和软件定制开发各…

IOS-高德地图连续定位-Swift

使用定位功能需要需要接入高德地图定位Api: pod AMapLocation配置Info 在info中新建一个名为Privacy - Location Temporary Usage Description Dictionary的字典,然后在这个字典下新建Privacy - Location When In Use Usage Description、Privacy - Lo…

应用案例 | Softing工业物联网连接解决方案助力汽车零部件供应商实现智能制造升级

随着业务的扩展和技术的进步,某国际先进汽车零部件供应商在其工业物联网的升级方案中使用了Softing的dataFEED OPC Suite——通过MQTT协议将现场控制器和数控系统的数据上传到其物联网云平台,从而实现了设备状态的远程监控,不仅能够提前发现设…

drools开源规则引擎介绍以及在Centos上的具体部署方案,让你的业务规则能够独立于应用程序本身

Drools是一个基于Java的开源规则引擎,用于处理业务规则和复杂事件处理。它提供了一个声明性的规则语言,允许开发人员定义业务规则,并通过引擎执行这些规则。以下是Drools规则引擎的简介和一些应用场景描述。 Drools规则引擎简介 规则引擎概述…

消费增值模式:引领消费者与平台共创双赢的新篇章

在数字化时代,消费模式正在发生深刻变革。消费者不再满足于单纯的购物行为,而是寻求更加个性化和有价值的消费体验。而平台也面临着如何吸引和留住消费者的挑战。消费增值模式作为一种新型的商业模式,正逐渐成为解决这一问题的关键。 消费增…

钢岚芯片:如何获取及鉴别真伪?

在不断变革的高科技时代,芯片技术作为科技前沿的重要标志,已成为衡量一个国家和地区科技实力的重要指标。钢岚芯片,这一神秘而又先进的科技产物,作为当前芯片科技研究的巅峰之作,吸引了无数科技爱好者和业界精英的追捧…

ROS第 6 课 编写简单的订阅器 Subscriber

文章目录 第 6 课 编写简单的订阅器 Subscriber1. 编写订阅者节点2. 测试发布者和订阅者 第 6 课 编写简单的订阅器 Subscriber 订阅器是基于编辑了发布器的基础上创建的,只有发布了消息,才有可能订阅。若未编辑发布器,可前往"ROS第5课 …

SQL注入漏洞的检测及防御,零基础入门到精通

SQL注入(SQL Injection)是一种广泛存在于Web应用程序中的严重安全漏洞,它允许攻击者在不得到授权的情况下访问、修改或删除数据库中的数据。这是一种常见的攻击方式,因此数据库开发者、Web开发者和安全专业人员需要了解它&#xf…

WordPress后台仪表盘自定义添加删除概览项目插件Glance That

成功搭建WordPress站点,登录后台后可以在“仪表盘 – 概览”中看到包括多少篇文章、多少个页面、多少条评论和当前WordPress版本号及所使用的主题。具体如下图所示: 但是如果我们的WordPress站点还有自定义文章类型,也想在概览中显示出来应该…

OpenLayers实战,OpenLayers点聚合有相同经纬度坐标时无法展开问题解决办法,当缩放级别达到一定等级后强行展开聚合为单个点

专栏目录: OpenLayers实战进阶专栏目录 前言 本章用于解决OpenLayers使用Cluster点聚合情况下,要素(Feature)出现有相同经纬度坐标时无法展开成单独图标的问题解决办法以及当缩放级别达到一定等级后强行展开聚合为单个点的功能。 本章展开后由于经纬度坐标还是同一个点,…

Spring Security- 基于角色的访问控制

基于角色 或权限 进行访问控制 hasAuthority方法 如果当前的主体具有指定的权限,则返回true,否则返回false 修改配置类 //当前登录用户 只有具备admins权限才可以访问这个路径.antMatchers("/test/index").hasAuthority("admins") 代码如下: package c…

【面试合集】说说微信小程序的发布流程?

面试官:说说微信小程序的发布流程? 一、背景 在中大型的公司里,人员的分工非常仔细,一般会有不同岗位角色的员工同时参与同一个小程序项目。为此,小程序平台设计了不同的权限管理使得项目管理者可以更加高效管理整个团…

vue3-模板引用

//1.调用ref函数 -> ref对象 const h1Ref ref(null) const comRef ref(null) //组件挂载完毕之后才能获取 onMounted(()>{console.log(h1Ref.value);console.log(comRef.value); })<div class"father"><!-- 通过ref标识绑定ref对象 --><h2 re…