第五天(程序包的管理与安装)

  • 程序包的类型:(tar源码包:是开发者开发后的源代码程序包,在安装时需要先编译在进行安装。rpm二进制包:是经过发布者使用GCC编译后的程序包)
  • rpm包的获取方式有三种

(Centos 系统镜像光盘)
rpmfind.net网站
去官方网站http://www.mysql.com下载。

  • rpm工具使用分为安装、查询、验证、更新、删除等操作。
  • rpm【参数】 程序包
  • -i:install的意思,安装程序包
  • -v:显示附加信息,提供更多详细的信息
  • -V:校验,对已经安装的软件进行校验
  • -h:–hash,安装时输出###的标记
  • 使用域名安装rpm文件,yum会自动解决rpm依赖问题
  • Yum的使用:

yum的全称是yellowlog updater modified,是程序包的前端管理工具。
前端管理工具实际上并不能取代程序包管理器,而仅作为程序包管理器的补充。Yum在工作时还需要依赖RPM程序包管理器来完成工作。Yum能够自动解决包依赖关系问题,自动下载程序,它是基于C/S(客户端/服务端)的架构。C代表Client客户端,S代表服务器端,服务器端可以是ftp、http或file。
Yum的工作机制如下:当安装某个程序时,不管该程序包有多少层依赖或依赖多少个程序包,Yum都能够找到所被依赖的程序包,并在本地完成所需程序的安装。Yum能够自动解决依赖关系,那么程序包是怎么来的?Yum的自动解决依赖的过程依赖某一种机制,在某一个地方存放着程序包。文件服务器能够通过Yum所支持的文件共享机制共享各RPM包。这个文件服务器所输出的路径,给Yum工作提供后端支持以获取所需的任意RPM包,这个后端支持称为Yum仓库。但仅靠一个Yum仓库不能完成Yum的工作,Yum需要自行发现各RPM包的依赖关系,并且根据其依赖关系到Yum仓库中找到所被依赖的程序包。那么,Yum仓库中有多少个RPM包?各RPM包的依赖关系是什么?是否有依赖Yum仓库内并不存在的RPM包?这些都需要事先定义,也就是说,这种依赖关系并不是Yum自身就能够得知的,Yum也是通过查询某个文件后得知的。
因此,Yum仓库中不仅有RPM包,还包含一些元数据文件,每一个RPM包的名称、安装后能提供哪些文件、程序的依赖关系等都存储在这些文件中。Yum在使用任何一个Yum仓库时,首先会获取这些元数据文件,把仓库中的各元数据文件下载并缓存到本地,以便快速分析。而后根据元数据文件分析需要安装的程序是否有依赖关系、所依赖的程序有多少存在于仓库中、有多少本地系统是已经安装了的、还剩余多少尚未安装,根据检测后的结果下载所需要的程序包,并在本地安装。Yum在获取服务端的元数据文件并缓存到本地以后,下次安装时就不用再去服务端下载,而是直接查询本地缓存即可,但是Yum每次查询本地缓存的元数据文件时,也会到服务端根据元数据文件的MD5码做检测对比。如果服务端的元数据文件发生了改变,Yum会自动下载元数据文件到本地,如果没有改变,则不再下载,直接使用本地的元数据文件,当然,也可以手动清除Yum的缓存元数据文件。

  • yum 基础命令
  • yum install -y htttpd (安装程序包 -y直接安装)
  • yum -y update(不加载任何程序包,表示整个系统进行升级)
  • yum -y upgrade (升级程序包,不会改变软件设置和系统设置,系统版本升级,内核不改变)
  • yum info httpd (查询rpm包的作用)
  • yum provides /use/bin/find (查看命令是哪个程序包安装的)
  • yum -y remove (卸载程序包)
  • yum search keyword (按关键字搜索程序包)

程序安装还有make make install 命令等通过编译安装的,目前本人安装开发环境程序较多使用docker安装,所以只是简单的学习了一些yum 和 rpm 的使用命令。后期有时间单独写一篇关于yum使用的博文。