小萌新—> Linux高手系列:包管理
《小萌新 —> Linux高手系列文章》。
今天这篇文章将给大家介绍基于CentOS的包管理。
在Linux操作系统中主要两种形式的包管理形式:
一种形式是压缩包的形式;例如**.tar.gz,这里面就是**的源码,种形式的软件包的安装需要编译再安装。
另外一种形式是二进制的形式,如rpm(redhat package manager),rpm的软件包可以直接安装。
ps:rpm原来是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用,已经成为行业标准。它是通过把源码**.tar.gz编译而来,编译就是把源代码转换成计算机可以认识的二进制文件。
rpm包格式为:
name-version.release.arch.rpm
比如:httpd-2.2.15-59.el6.centos.x86_64.rpm ,在这里,httpd是软件包的包名,2.2.15-59依次是软件包的主发行版本号,次发行版本号和修正号等,el6.centos是软件包适用的操作系统的版本号,x86_64是软件包的架构。
rpm的命令一般都是组合使用的,常用的组合选项有:
rpm -q | 查询某个软件包,一般与别的选项组合使用 |
rpm -qa | 查询系统上已安装的所有的软件包 |
rpm -qf | 查询系统中的某个文件是由哪个软件包所生成 |
rpm -qd | 查询一个软件包安装后在系统生成的帮助文件 |
rpm -ql | 查询一个软件包安装后在系统生成文件的列表 |
rpm -qc | 查询一个软件包的配置文件 |
rpm -qpl | 查询一个未安装软件包安装后会在系统生成的文件列表 |
rpm -qi | 查询一个软件包的发行信息 |
rpm -v | 显示一个软件包安装,升级,卸载的过程 |
rpm -K | 校验一个软件包的私钥是否正确 |
rpm -U | 升级软件包 |
rpm -f | 强制安装,升级或卸载某软件 |
rpm -e | 卸载软件包 |
rpm -ivh | 安装软件包,并显示安装过程 |
CentOS包管理-yum
在使用rpm进行包管理有一个致命缺点:rpm包有依赖关系,在装一个软件包的时候,往往不知道这个软件包依赖于哪个软件包存在。
如何解决rpm包的依赖性问题?
用yum来解决依赖的问题,yum也是一个命令,也指向一个安装源,我们可以把源的路径写到配置文件里面。
yum(Yellow dog Updater Modified)是CentOS中属于RPM前端软件包管理器,能从指定的服务器中下载RPM包,并自动分析和处理RPM包之间的依赖关系,最后将依次所依赖的软件包都安装了,而无需繁琐的一个一个安装。
yum 的配置文件有2种:
/etc/yum.conf:为所有仓库提供公共配置
/etc/yum.repos.d/*.repo:为仓库的指向提供配置
yum 从这些配置文件中,可以找到对应的仓库地址。
yum客户端的工作原理:
1.yum源配置完成后,yum会到各可用的yum仓库下载元数据到本地,并缓存在/var/cache/yum这个目录下。
2.当管理员想要安装某个软件时,yum会根据具体的操作请求分析缓存在系统本地的元数据,结合系统已经安装的软件包,分析出要安装或升级的软件包的列表。
3.向yum仓库请求分析出的软件包列表中的软件,下载到本地客户端完成安装。
4.本次安装完成后,清除本次安装过程中下载到本地的软件包,以节省硬盘空间。
yum 语法:
yum [options] [command] [package ...]
options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 “yes”),-q(不显示安装的过程)等等;
command:要进行的操作;
package:安装的包名
yum的命令一般也是组合使用的,常用的组合选项有:
yum install xxx | 安装xxx软件 |
yum info xxx | 查看xxx软件的信息 |
yum remove xxx | 删除软件包 |
yum clean | 清除缓冲和就的包 |
yum check-update | 检查可更新的rpm包 |
yum update | 更新所有的rpm包 |
yum update kernel kernel-source | 更新指定的rpm包,如更新kernel和kernel source |
yum list | 列出资源库中所有可以安装或更新的rpm包 |
yum list mozilla* | 列出资源库中特定的可以安装或更新以及已经安装的rpm包 |
yum list updates | 列出资源库中所有可以更新的rpm包 |
yum list installed | 列出已经安装的所有的rpm包 |
yum list extras | 列出已经安装的但是不包含在资源库中的rpm包,即通过其它网站下载安装的rpm包 |
yum search mozilla | 搜索匹配特定字符的rpm包 |
yum provides xxx | 以xxx为关键字搜索包(提供的信息为关键字) |
微信号 : TestOps
知乎:@TestOps云层