Linux系统红帽软件包管理器(RPM)

1、源代码管理

绝大多数开源软件都是直接以源代码形式发布的,一般会被打包为tar.gz 的归档压缩文件。程序源代码需要编译为二进制可执行文件后才能够运行使用。源代码的基本编译流程为

  1. ./configure:解压缩后运行该命令,它主要检查编译环境、相关库文件以及配置参数并生成 makefile
  2. make:对源代码进行编译,生成可执行文件
  3. make install:将生成的可执行文件安装到计算机中

源代码形式的软件使用起来较为麻烦,但是兼容性和可控性较好。并且开源软件一般会大量使用其他开源软件的功能,所以开源软件会有大量的依赖关系(使用某软件需要先安装其他软件)。

2、RPM包管理器

在RPM(Redhat Package Manager,红帽软件包管理器)公布之前,要想在Linux系统中安装软件只能采取源码包的方式安装。早期在Linux系统中安装程序是一件非常困难、耗费耐心的事情,而且大多数的服务程序仅仅提供源代码,需要运维人员自行编译代码并解决许多的软件依赖关系,因此要安装好一个服务程序,运维人员需要具备丰富知识、高超的技能,甚至良好的耐心。而且在安装、升级、卸载服务程序时还要考虑到其他程序、库的依赖关系,所以在进行校验、安装、卸载、查询、升级等管理软件操作时难度都非常大。

RPM机制是专门为解决这些问题而设计的。RPM有点像Windows系统中的控制面板,会建立统一的数据库文件,详细记录软件信息并能够自动分析依赖关系。目前RPM的优势已经被公众所认可,使用范围也已不局限在红帽系统中了,下表是一些常用的RPM软件包命令

常用的RPM软件包命令

安装软件的命令格式

rpm -ivh packagename.rpm

升级软件的命令格式

rpm -Uvh packagename.rpm

卸载软件的命令格式

rpm -e packagename.rpm

查询软件描述信息的命令格式

rpm -qpi packagename.rpm

列出软件文件信息的命令格式

rpm -qpl packagename.rpm

查询文件属于哪个RPM的命令格式

rpm -qf packagename

查看某一个软件包是否安装

rpm -qa|grep packagename.rpm

 

 

 

 

 

 

 

 

 

 

 

     

  -i:  install 安装   

  -v:  verboes 可视化

  -h:  hash 显示安装进度

另外的常用的附带参数为:

  --force:  强制安装,即使覆盖其他包的文件也要安装

  --nodeps:  当要安装的rpm包依赖其他包的时候,即使其他包没有安装,也要安装这个包

  -U:  upgrade 即升级的意思

  查询一个包是否安装

  rpm -q packagename(这里的包名是不带有平台信息以及后缀名的)

  eg:rpm -q alacarte-0.10.0-1.fc6(如果加了平台信息及后缀名alacarte-0.10.0-1.fc6.noarch.rpm反而不能查出来)

  rpm -qa 查询当前系统上所安装的所有rpm包

  rpm -qa | grep packagename 查看某个软件包是否安装(这里的包名是带有平台信息以及后缀名的)

猜你喜欢

转载自www.cnblogs.com/Hunry/p/9368782.html