yum仓库

目录

什么是yum仓库

概念

yum的实现过程

Yum的实现过程如下:

yum的配置文件

仓库设置文件

日志文件

yum命令

[yum list 显示所有可用的包,包名,支持通配符 yum list*Kernel](#yum list 显示所有可用的包,包名,支持通配符 yum list*Kernel)

[yum info 显示包的信息](#yum info 显示包的信息)

[yum search ftp 查找包含ftp的所有安装包 (模糊查找)](#yum search ftp 查找包含ftp的所有安装包 (模糊查找))

[yum provides ftp 查找这个命令来源和哪个包 (精确查找)](#yum provides ftp 查找这个命令来源和哪个包 (精确查找))

[yum history 查找历史命令(所有操作)](#yum history 查找历史命令(所有操作))

查询

[yum list [软件名]](#yum list [软件名])

[yum info [软件名] (不加软件名显示所有软件包的详细信息)](#yum info [软件名] (不加软件名显示所有软件包的详细信息))

[yum search <关键词>(模糊查找)](#yum search <关键词>(模糊查找))

[yum provides <关键词>(精确查找)](#yum provides <关键词>(精确查找))

[yum grouplist [包组名]](#yum grouplist [包组名])

[yum groupinfo <包组名>](#yum groupinfo <包组名>)

yum安装升级

[yum install [软件名]](#yum install [软件名])

[yum groupinstall <包组名>](#yum groupinstall <包组名>)

[yum update <包组名>](#yum update <包组名>)

软件卸载

[yum remove <软件名>](#yum remove <软件名>)

[yum history](#yum history)

搭建仓库

http方式

1.先在服务端挂载光盘镜像

2.在客户端

3.测试

ftp方式搭建云仓库


什么是yum仓库

概念

Yum仓库是指使用Yum命令下载软件的镜像地址。它是一个基于RPM包构建的软件更新机制,能够自动解决软件包之间的依赖关系。在Yum仓库中,事先存储了众多rpm包以及相关的元数据文件,当Yum客户端利用Yum/dnf工具进行安装包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包以及依赖关系,自动从仓库中找到相关包下载并安装。

yum的实现过程

要有安装包

安装包:

1.光驱里自带 挂载提供软件包

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

服务器:

RPM包 (Packages文件夹中)

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

客户端的配置文件中

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

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

仓库类型:

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

epel扩展仓库 比较新 (第三方源)

Yum的实现过程如下:

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

yum的配置文件

1./etc/yum.conf 主配置文件

bash 复制代码
[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:自定义变量

仓库设置文件

/etc/yum.repos.d/*.repo yum仓库文件位置

日志文件

/var/log/yum.log 日志文件 cat查看

yum命令

yum list 显示所有可用的包,包名,支持通配符 yum list*Kernel

yum info 显示包的信息

yum provides ftp 查找这个命令来源和哪个包 (精确查找)

yum history 查找历史命令(所有操作)

查询

yum list [软件名]
bash 复制代码
[root@localhost ~]# yum list httpd  //安装软件


[root@localhost ~]# yum list *httpd*    包含httpd的软件包
yum info [软件名] (不加软件名显示所有软件包的详细信息)
bash 复制代码
[root@localhost ~]# yum info httpd  //显示httpd安装包的详细信息

根据关键字查找软件安装包,相当于你只知道这个包里的某个关键字会全部给你匹配出来

bash 复制代码
[root@localhost ~]# yum search httpd
yum provides <关键词>(精确查找)

你知道某个命令却不知道具体的包可以用此命令查找

bash 复制代码
[root@localhost ~]# yum provides httpd
yum grouplist [包组名]

安装包组的查询 不加包组名 就是显示所有(此处例子由于安装了中文环境,无法显示英文包组名称无法直接复制中文使用,建议直接安装英文操作系统)

bash 复制代码
[root@localhost ~]# yum grouplist
yum groupinfo <包组名>

不加包组名显示全部

bash 复制代码
[root@localhost ~]# yum groupinfo "GNOME Desktop"

yum安装升级

yum install [软件名]

安装软件包

bash 复制代码
[root@localhost ~]# yum install nginx -y  //加-y确认安装,后面就无需再次确认
yum groupinstall <包组名>
bash 复制代码
[root@localhost ~]#  yum group install gnome desktop -y  //安装桌面
yum update <包组名>

更新包组,可以单个也可以全部 后面加具体包组名称就是单个更新,不加就是全部更新(首先要有更新的包组)

bash 复制代码
[root@localhost ~]# yum upgrade

软件卸载

yum remove <软件名>

bash 复制代码
[root@localhost ~]# yum upgrade httpd

yum history

可以使用yum history undo 4 进行卸载,这样对比remove好处是可以将所有的依赖都删除

把4删除

如果后悔 卸载 可以使用两种方式

yum history redo 4 (重新安装一遍)

yum history undo 6 (反悔卸载等于重新安装一遍)

搭建仓库

http方式

1.先在服务端挂载光盘镜像

2.在客户端

3.测试

ftp方式搭建云仓库

服务端:192.168.17.25

客户端:192.168.17.30

相关推荐
matlab的学徒13 分钟前
Web与Nginx网站服务(改)
linux·运维·前端·nginx·tomcat
Insist75318 分钟前
prometheus安装部署与alertmanager邮箱告警
linux·运维·grafana·prometheus
BAGAE1 小时前
MODBUS 通信协议详细介绍
linux·嵌入式硬件·物联网·硬件架构·iot·嵌入式实时数据库·rtdbs
灿烂阳光g1 小时前
SELinux 策略文件编写
android·linux
xqlily1 小时前
Linux操作系统之Ubuntu
linux·运维·ubuntu
阿部多瑞 ABU1 小时前
《基于国产Linux的机房终端安全重构方案》
linux·安全
倔强的石头1062 小时前
【Linux指南】Makefile入门:从概念到基础语法
linux·运维·服务器
ajassi20002 小时前
linux C 语言开发 (七) 文件 IO 和标准 IO
linux·运维·服务器
程序猿编码2 小时前
基于 Linux 内核模块的字符设备 FIFO 驱动设计与实现解析(C/C++代码实现)
linux·c语言·c++·内核模块·fifo·字符设备
一只游鱼2 小时前
Zookeeper介绍与部署(Linux)
linux·运维·服务器·zookeeper