学习下软件包管理工具:RPM、YUM
既然我们学习RPM,那什么是RPM呢?
RPM(RedHat Package Manager),最早由RedHat公司提出的软件包标准,后来随着rpm的不断发 而又增加许多功能,逐渐的成为linux公认的软件包管理标准。
所以简单的理解就是将你所需要安装的软件包以一种形式安装到你的Linux系统上的一套软件包管理软件。
RPM软件安装的原理:
源代码程序->编译->对应平台汇编语言->链接->运行
所以我们安装的rpm软件包是经过编译并通过一些底层共享库实现转换成二进制代码程序。
下面我们就来说下经过编译过的RPM的优点和缺点:
优点:安装方面,不需要编译即可安装,而且方面查询、升级等功能
缺点:只能安装在和源码编译代码所使用的平台一致时方可安装,那意思就是说平台和编译平台不一致时是不可以安装rpm包的。
注:(以上理解均为自己理解,如理解有误欢迎提出,达到共同学习、进步)
# rpm -qa
用于查看系统中已安装的所有的rpm包
# rpm -q PACKAGE_name
查询软件包是否安装,如果所查询的软件包已安装,会显示完整包名名称
rpm -ivh /PATH/TO/PACKAGE_FILE
安装软件包并显示安装过程。i:安装 、v:可视化安装、h:安装进度
# rpm -qi
指定软件包的说明信息
# rpm -ql
查询软件包安装时所安装的路径
# rpm -qf FILE_name
查询指定文件是由哪个软件包安装所生成的文件
# rpm -qc PACEAGE_NEME:查询指定包安装的配置文件
# rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件
# rpm -qd vsftpd 查询vsftpd软件包安装所产生的帮助文件
# rpm -q --scripts PACKAGE_NAME: 查询指定包中包含的脚本
如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件;
# rpm -qpi /PATH/TO/PACKAGE_FILE 显示某个软件包的信息
# rpm -qpl 查询某个软件包安装时所安装的路径
# rpm -e RPM包名 用于卸载软件包(而且软件包不能有依赖关系)
# rpm -e --nodeps 包名 用于删除存在依存关系的软件包,该命令可以将和该包存在依存关系的所有的软件包统统删除。
# rpm -Uvh RPM包名(新版本软件包) :如果系统安装老版本则升级,否则安装软件包
# rpm -Fvh RPM包名(新版本软件包) :如果有老版本则升级新版本,否则退出
# rpm --oldpackage: 降级软件包版本
RPM软件包管理器不能安装带有依赖的软件包,如果强制安装则会出现一定的软件故障,所以我们常用YUM来安装解决包依赖情况
常用于软件包的安装、卸载、查询、更新等软件包
下面介绍下yum仓库中的元数据文件:
primary.xml.gz
所有RPM包的列表;
依赖关系;
每个RPM安装生成的文件列表;
filelists.xml.gz
当前仓库中所有RPM包的所有文件列表;
other.xml.gz
额外信息,RPM包的修改日志;