【Linux】yum命令(RedHat/CentOS)

1、YUM 功能作用

  • YUM(Yellow dog Updater Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器
  • YUM 基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

RPM (RedHat Package Manager)一种通过资料库管理的方式将所需要的软件安装到主机上的管理程序。特点:事先已经编译好,安装方便。生成 .RPM 扩展名的文件。

  • 文件服务器:保存RPM包、元数据文件、conf文件、binary信息。并通过文件共享服务让外部客户端可以访问到存放RPM包的目录。
  • 客户端:支持RPM包管理基本功能,本地有YUM程序;有配置文件(配置远程服务器YUM仓库或本地服务器YUM仓库)。

2、YUM 执行流程

  • 客户端接收到YUM命令后,会向着本地配置文件中配置的服务器地址(URL)发起连接。
  • YUM不会直接向服务器请求程序包,而是请求YUM服务器上存放RPM包名、版本、包和包之间依赖关系的元数据文件
  • 这个文件下载到本地之后,会先存放到cache中,然后YUM会在本地上分析这个文件中是否存有要安装程序包的包名,如果有就根据这个元数据文件尝试分析该包的依赖关系,得出要依赖哪些程序包之后,就在本地已安装的程序包中查询被依赖的包中哪些已安装,哪些没有安装;
  • 分析完之后,YUM会启动文件服务器的客户端向着YUM服务器下载那些没有安装的程序包。
  • 下载完成后先缓存在本地,在本地开始执行类似于RPM安装的操作;
  • 安装时会先安装被依赖的程序包,所有程序包安装完成后会通知客户端,并自动删除缓存区中的程序包以节省空间;
  • 元数据不会被删除,因为下次再安装新的程序包时,直接分析本地的元数据就可以获取依赖关系,通过这种方式可以节省时间与网络带宽。
  • 上述这种机制,也存在着一些问题,万一服务器上的程序包或者依赖关系发生了变化,就会导致服务器和客户端本地的元数据不一致。
  • 可以在每次使用YUM的时候,都向服务器请求元数据。但是这种方式浪费带宽和时间,有的时候明明没有变化,但还是需要下载。

YUM服务器上有一个特殊文件,文件中记录了每一个元数据文件的校验码,实际上每次运行YUM的时候,都会向服务器请求这个文件,并和本地元数据中的校验码文件进行对比,如果一致则代表元数据没有变化,本地元数据有效,否则就重新请求元数据。

3、YUM 命令用法

yum [options] [command] [package …]

  • options:-h(帮助)-y(当安装过程提示选择全部为 “yes”)-q(不显示安装的过程)等等。
  • command:要进行的操作。
  • package:安装的包名。
  1. 列出所有可更新的软件清单命令:yum check-update

  2. 更新所有软件命令:yum update

  3. 仅安装指定的软件命令:yum install -y package_name

  4. 仅更新指定的软件命令:yum update package_name

  5. 列出所有可安裝的软件清单命令:yum list

  6. 删除软件包命令:yum remove package_name

  7. 查找软件包命令:yum search keyword

  8. 清除缓存命令:
    yum clean packages: 清除缓存目录下的软件包
    yum clean headers: 清除缓存目录下的 headers
    yum clean oldheaders: 清除缓存目录下旧的 headers
    yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers

  9. 清理后重建缓存: yum makecache

示例

[root@ecs-fjx ~]# yum install git
Loaded plugins: fastestmirror
Determining fastest mirrors
base                                                                             | 2.2 kB  00:00:00     
docker-ce-stable                                                                 | 3.5 kB  00:00:00     
epel                                                                             | 3.3 kB  00:00:00     
extras                                                                           | 1.5 kB  00:00:00     
updates                                                                          | 1.5 kB  00:00:00     
(1/5): epel/x86_64/group_gz                                                      |  99 kB  00:00:00     
(2/5): updates/7/x86_64/primary                                                  |  12 MB  00:00:00     
(3/5): epel/x86_64/updateinfo                                                    | 1.0 MB  00:00:00     
(4/5): docker-ce-stable/7/x86_64/primary_db                                      |  97 kB  00:00:00     
(5/5): epel/x86_64/primary                                                       | 3.9 MB  00:00:05     
epel                                                                                        13747/13747
updates                                                                                       4724/4724
Resolving Dependencies
--> Running transaction check
---> Package git.x86_64 0:1.8.3.1-24.el7_9 will be installed
--> Processing Dependency: perl-Git = 1.8.3.1-24.el7_9 for package: git-1.8.3.1-24.el7_9.x86_64
--> Processing Dependency: rsync for package: git-1.8.3.1-24.el7_9.x86_64
--> Processing Dependency: perl(Term::ReadKey) for package: git-1.8.3.1-24.el7_9.x86_64
--> Processing Dependency: perl(Git) for package: git-1.8.3.1-24.el7_9.x86_64
--> Processing Dependency: perl(Error) for package: git-1.8.3.1-24.el7_9.x86_64
--> Running transaction check
---> Package perl-Error.noarch 1:0.17020-2.el7 will be installed
---> Package perl-Git.noarch 0:1.8.3.1-24.el7_9 will be installed
---> Package perl-TermReadKey.x86_64 0:2.30-20.el7 will be installed
---> Package rsync.x86_64 0:3.1.2-12.el7_9 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================
 Package                      Arch               Version                      Repository           Size
========================================================================================================
Installing:
 git                          x86_64             1.8.3.1-24.el7_9             updates             4.4 M
Installing for dependencies:
 perl-Error                   noarch             1:0.17020-2.el7              base                 32 k
 perl-Git                     noarch             1.8.3.1-24.el7_9             updates              56 k
 perl-TermReadKey             x86_64             2.30-20.el7                  base                 31 k
 rsync                        x86_64             3.1.2-12.el7_9               updates             408 k

Transaction Summary
========================================================================================================
Install  1 Package (+4 Dependent packages)

Total download size: 4.9 M
Installed size: 23 M
Is this ok [y/d/N]: t^Hy
Is this ok [y/d/N]: y
Downloading packages:
(1/5): perl-Error-0.17020-2.el7.noarch.rpm                                       |  32 kB  00:00:00     
(2/5): perl-Git-1.8.3.1-24.el7_9.noarch.rpm                                      |  56 kB  00:00:00     
(3/5): rsync-3.1.2-12.el7_9.x86_64.rpm                                           | 408 kB  00:00:00     
(4/5): git-1.8.3.1-24.el7_9.x86_64.rpm                                           | 4.4 MB  00:00:00     
(5/5): perl-TermReadKey-2.30-20.el7.x86_64.rpm                                   |  31 kB  00:00:00     
--------------------------------------------------------------------------------------------------------
Total                                                                    25 MB/s | 4.9 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 1:perl-Error-0.17020-2.el7.noarch                                                    1/5 
  Installing : rsync-3.1.2-12.el7_9.x86_64                                                          2/5 
  Installing : perl-TermReadKey-2.30-20.el7.x86_64                                                  3/5 
  Installing : perl-Git-1.8.3.1-24.el7_9.noarch                                                     4/5 
  Installing : git-1.8.3.1-24.el7_9.x86_64                                                          5/5 
  Verifying  : perl-TermReadKey-2.30-20.el7.x86_64                                                  1/5 
  Verifying  : 1:perl-Error-0.17020-2.el7.noarch                                                    2/5 
  Verifying  : perl-Git-1.8.3.1-24.el7_9.noarch                                                     3/5 
  Verifying  : git-1.8.3.1-24.el7_9.x86_64                                                          4/5 
  Verifying  : rsync-3.1.2-12.el7_9.x86_64                                                          5/5 

Installed:
  git.x86_64 0:1.8.3.1-24.el7_9                                                                         

Dependency Installed:
  perl-Error.noarch 1:0.17020-2.el7                    perl-Git.noarch 0:1.8.3.1-24.el7_9               
  perl-TermReadKey.x86_64 0:2.30-20.el7                rsync.x86_64 0:3.1.2-12.el7_9                    

Complete!
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值