yum基础概述--19

1.什么是yum?
Yum是RedHat以及CentOS中的软件包管理器。能通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装

2.什么是yum源?
要成功的使用 YUM 工具安装更新软件或系统,就需要有一个包含各种 rpm 软件包repository(软件仓库),这个软件仓库习惯称为 yum 源。(可以是本地源、网络源)

CDCF4BC262703C626F0BBEDB7496097F.jpg

简述:/etc/yum.repos.d/里有很多的以.repo结尾的文件,而这个文件里有一个地址。这个地址叫做yum源地址。而这个地址里边会有很多的以.rpm结尾的软件包。
所以说:一个源,其实就是一个网址,这个网址对应的就是一个仓库,这个仓库里有很多的rpm包。添加一个源网址,就相当于是在添加一个仓库

当我们去执行一个安装命令的时候,它就会自动的先去搜索我们的源,然后源去找服务器上的软件包,如果有,就会返回给你消息。进行安装。

需要配置的源:
bash 基础软件包 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

epel 第三方软件
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

学习服务:
nginx 需要找官方提供的 .repo文件。是最新的
zabbit
docker

配置一个源的两种方法:
1.手动添加一个.repo 文件
需要根据官网的要求,先vim在/etc/yum.repos.d/ 下,添加一个文件,后缀必须是.repo。然后把需要粘贴的东西,粘贴上去,然后在去查看仓库的数量时,就会自动加载了。

[[email protected] ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

2.直接安装一个“release” 的包,包中提供一个repo的文件
Xnip2020-03-24_17-41-09.jpg

yum安装软件包

yum install 软件包名 -y (这个是在仓库里找)
(加y 就是非交互式的,直接安装好 。不加,就是交互式的,会提示你,是否安装)

也可以直接在网络上下载 .rpm
yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

如果安装本地的软件包出现了依赖关系,会自动处理。

yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

   安装有依赖的软件包的流程;
                   下载一个rpm包到本地?
    @1.   rpm -ivh 进行安装  (安装过程碰到了依赖怎么处理呢?) 缺什么找什么,然后安装

    @2.    yum localinstall  (安装过程碰到了依赖怎么处理?)   会自动处理依赖
             1.分析软件的依赖
             2.通过所有已经配置的repo源,上对应的仓库去寻找所需要的依赖包
             3.安装所有的依赖包,最后安装本地的rpm

yum. 重装 yum reinstal
如果不小心,我们把软件包的目录给删除了一个文件,会导致软件的不能使用。这个时候就需要重新安装,然后文件就会重新被加载回来。
rm -f /etc/vsftpd/vsftpd.conf
yum reinstall vsftpd
rpm -qc vsftpd

 yum  更新软件包

1.对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级

       yum check-update

2.更新acl软件

     yum update acl -y

3.更新整个系统所有的软件,包括内核 (通常刚装完系统会进行执行) 非常危险

[[email protected] ~]# yum update -y ⚠️⚠️

yum 删除软件包
yum install vsftpd -y 安装软件
yum remove vsftpd -y 删除软件


扩展指令

 与仓库相关的

[[email protected] ~]# yum repolist 查看当前可用的仓库(就是启用)
[[email protected] ~]# yum repolist all 查看所有的仓库(不管是否可用)

如何启用一个仓库呢?
第一种:去/etc/yum.repos.d/对应的文件中,编辑里边的一个 enabled ,改成0就是禁止。


Xnip2020-03-24_18-39-52.jpg

第二种:把不想用的直接给他gzip压缩啦。压缩之后,后缀变了。所以就不会被系统读到,也就算禁止使用了
gzip /etc/yum.repos.d/zabbix.repo 进行压缩


Xnip2020-03-24_18-42-22.jpg

查找一个命令,或文件所属的软件包是什么
如果是 rpm 是必须要知道这个命令的绝对路径。并且这个命令是已经安装好啦的。

但yum 就可以不要知道路径,只需要知道这个命令是什么,
然后直接yum provides 加命令 。直接就能查看到。
然后yum 不仅可以搜索命令,还可以搜索文件来自哪个软件包。
yum provides cd
bash-4.2.46-31.el7.x86_64 : The GNU Bourne Again shell
源 :@anaconda 这里的@表示这个命令已经安装过啦。没有@。表示没安装。
匹配来源:
文件名 :/usr/bin/cd

⚠️:如果搜索不到。第一是自己写错了。第二个就是自己仓库少了,需要添加仓库啦

yum 缓存
就是我们下载过的软件包,到最后都去了哪里了呢。默认是直接删除了。
但如果想保留呢?
第一种:还是去/etc/下对应的文件中,这一次改的是keepcache (0是禁止缓存,1是启用缓存)
⚠️:已经安装的包。是不会有缓存的,除非是没有安装的。
[root@oldboy ~]# find /var/cache/yum/x86_64/7/ -type f -name "*.rpm"
在这里,就可以查到你所有安装的软件包。

清理yum缓存
yum clean all 清除所有的缓存信息
yum clean packages 清除所有的软件包

组包相关的指令
简单说:就是将软件包都打包到一起,变成一个组包,然后安装的时候只需要安装这一个组装就行。不要自己动手一个个软件包的进行安装。
[root@oldboy ~]# yum groups list 查看所有的组包
[root@oldboy ~]# yum groups install Development tools Compatibility libraries Base Debugging Tools 安装组包
[root@oldboy ~]# yum groups remove -y Base 卸载组包

历史记录指令
其实就是如果你做了误删除,可以先在历史记录查找,然后查到具体的第几步,做一个历史恢复。
#1.查看历史执行yum命令
[[email protected] ~]# yum history

2.查询历史执行yum命令ID详细信息

[[email protected] ~]# yum history info N (好像查不到)

3.撤销历史执行过的yum命令

[[email protected] ~]# yum history undo N

如何搭建一个本地的仓库


A6211DC61181582CEC842454D8D23EE1.jpg

1.准备一个iso镜像文件 (它里面有很多的rpm包,可以使用 wget tree )
连接上虚拟机
2.挂载我们的光盘至本地的某个目录下
[root@container ~]# mount /dev/cdrom /mnt
就是将光盘挂载到/mnt下。
3.注释掉所有的repo文件,然后自己 新添加一个repo文件 ( 添加一个本地源 )
[root@container ~]# gzip /etc/yum.repos.d/*
4.配置一个yum源。
[root@container ~]# cat /etc/yum.repos.d/xiaolei.repo
[local- xiaolei] 仓库的名称,可随意
name = Local Packages 仓库的描述,可通过yum repolist查看
baseurl = file:///mnt 我们的仓库在哪,使用的什么协议
(http:// ftp:// file://)
enabled = 1 是否启用该仓库 1启用 0禁止
gpgcheck = 0 是否要校验软件包的合法性 (0不校验)

5.使用yum命令安装软件测试
[root@container ~]# yum remove wget -y
[root@container ~]# yum install wget

你可能感兴趣的:(yum基础概述--19)