部署YUM仓库服务

一、yum仓库

1. yum简介

        yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。

        为什么会有依赖关系的发生 因为linux本身就是以系统简洁为自身优势,所以在安装操作系统的时候并没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。

        yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。

2. yum实现过程

要有安装包

安装包:

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

2. 网络下载到本地

3. 直接通过网络

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

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

服务器

  • RPM包 (Packages文件夹中)

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

客户端的配置文件中

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

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

仓库类型:

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

  • epel扩展仓库 比较新

3. 如何实现安装服务

部署YUM仓库服务_第1张图片

二、yum配置文件

1. 主配置文件

文件位置:/etc/yum.conf

部署YUM仓库服务_第2张图片

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

2. 仓库设置文件

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

部署YUM仓库服务_第3张图片

3. 日志文件

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

三、yum命令

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

1. 查询软件包

(1)yum list [软件名]

        显示可用的安装包,如不加软件名是显示所有的可用包

部署YUM仓库服务_第4张图片

部署YUM仓库服务_第5张图片

(2)yum info [软件名]

        显示安装包详细信息

部署YUM仓库服务_第6张图片

(3)yum search <关键词>

        根据关键字查找软件安装包

部署YUM仓库服务_第7张图片

(4)yum provides <关键词>

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

部署YUM仓库服务_第8张图片

部署YUM仓库服务_第9张图片

(5)yum grouplist [包组名]

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

部署YUM仓库服务_第10张图片

(6)yum groupinfo <包组名>

        不加包组名显示全部

部署YUM仓库服务_第11张图片

2. 安装、升级软件包

(1)yum install [软件名]

        安装软件包

部署YUM仓库服务_第12张图片

(2)yum groupinstall <包组名>

        安装具体软件包组

部署YUM仓库服务_第13张图片

(3)yum update

        更新包组,可以单个也可以全部 后面加具体包组名称就是单个更新,不加就是全部更新。

部署YUM仓库服务_第14张图片

(4)yum groupupdate

        组包更新

部署YUM仓库服务_第15张图片

3. 卸载软件包

(1)yum remove <软件名>

        卸载已安装的软件必须加软件名

部署YUM仓库服务_第16张图片

(2)yum groupremove <包组名>

        同软件包卸载

(3)yum history

        查看历史的使用记录

部署YUM仓库服务_第17张图片

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

部署YUM仓库服务_第18张图片

        再次使用yum history 查看多了一条5记录是卸载记录

部署YUM仓库服务_第19张图片

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

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

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

四、搭建仓库的方式

软件仓库的提供方式:

        FTP服务:ftp://ip地址/站点里路径

        HTTP服务:http://域名或者ip地址/站点里的路径

        本地目录:file://绝对路径 (file:///mnt 此处第三个/为根目录)

1. 搭建本地yum仓库

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

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

        3. 新建yum仓库文件

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

部署YUM仓库服务_第20张图片

         yum仓库文件

部署YUM仓库服务_第21张图片

2. 搭建阿里云仓库

        1. 切换到 yum.repo.d 目录,将自带的仓库移走

        2. 新建aliyun仓库

CentOS系统的yum源
#阿里云
https://mirrors.aliyun.com/centos/$releasever/ 
#腾讯云
https://mirrors.cloud.tencent.com/centos/$releasever/ 
#华为云
https://repo.huaweicloud.com/centos/$releasever/ 
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/


EPEL的yum源
#阿里云
https://mirrors.aliyun.com/epel/$releasever/x86_64
#腾讯云
https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
#华为云
https://mirrors.huaweicloud.com/epel/$releasever/x86_64
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64

#更新源
http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/


baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64
		https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
		https://mirrors.huaweicloud.com/epel/$releasever/x86_64
		https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64

3. ftp搭建内网yum仓库服务器

服务端:

客户端:

验证: 

4. http搭建内网yum仓库服务器

服务端:

客户端:

验证: 

五、环境操作

1. 误将 rpm 软件删除

进入急救模式

部署YUM仓库服务_第22张图片

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源下载到本地使用

[root@localhost ~]#yum install epel-release  -y
#安装epel源    生成epel仓库文件

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

[root@localhost ~]# yum -y  install  createrepo
#安装建立元数据命令

[root@localhost ~]# createrepo  -v  /root/epel 
#建立元数据    软件目录  依赖关系 

4. 离线安装软件

[root@localhost yum.repos.d]# yum install tree --downloadonly --downloaddir=/opt/

--downloadonly     #只下载相关包默认至某一目录

--downloaddir=绝对目录路径    #下载到某一目录 

5. 升级内核

        1. yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

部署YUM仓库服务_第23张图片

        2. 修改元文件配置

部署YUM仓库服务_第24张图片

        3. 找内核软件包

部署YUM仓库服务_第25张图片

        4. 升级内核

部署YUM仓库服务_第26张图片

        当前内核版本

        新安装的内核版本 

部署YUM仓库服务_第27张图片

你可能感兴趣的:(linux,服务器,运维)