Linux 基础教程 34-软件包管理-RPM

对于Linux而言管理各类软件,如安装、卸载和升级等是常有的事情和必备的技能。以CentOS为例,常用的安装包命令有rpmyum

RPM基础

    RPM(RedHat Package Manager)是一个系统软件包,功能类似于Windows中的添加/删除程序,但又比添加/删除程序功能更强。在Linux界广泛使用的依然为各类开源软件,也就是代码是开放的,这些代码通常会被打包为.tar.gz形式在互联网上进行传播,而这些开源软件被下载后仍然需要编译成二进制后才可以使用。这种试虽然兼容性好,但使用起来却不方便,存在一定的依赖关系,而文件较大时,编译出错的概率也非常大,对于日常使用人员也很麻烦。

    使用RPM可以很容易地对RPM形式的软件进行安装、升级、卸载、检验和查询等操作。RPM可以让用户直接以binary方式安装软件包且可代替用户查询是否已经安装了相关的库文件。在用RPM删除程序时,管理器会提示用户是否要删除相关程序。如果使用RPM进行升级,RPM会保留得得配置。另外RPM还保留了一个包含所有软件包资料的数据库,通过该数据库可以查询各个已经安装的软件包等等。

RPM使用

RPM安装路径

    Linux的目录是有统一规范的,这个规范的作用是保证任何一个软件都能找到另一款软件、文件。

可以运行的文件存放在/bin或/usr/bin目录中

库文件存放在/lib或/usr/lib目录中

配置文件存放在/etc目录

    一般,RPM类型的文件在安装的时候,会先去读取文件内记载的设置参数内容,然后将该数据用于比较Linux环境,从而找出是否有属性依赖的软件还没有安装的问题。使用RPM方式安装的软件,在完成安装后,会将该软件的相关信息写入到/var/lib/rpm目录下的数据库文件中。该数据库非常重要,如果软件升级必须依赖它,如版本比对就是从这个数据库中读取数据的。

RPM组成部分

    RPM包含RPM数据库RPM软件包文件RPM命令三部分。

RPM数据库

    Linux系统中保留了当前安装软件的数据库,路径位于/var/lib/rpm,可使用file命令查看目录内容。

RPM软件包文件

    RPM软件包与tar归档文件类似:tar文件含有要安装到系统上的文件,软件包除了tar中的信息还包含一个RPM包头,该包头提供了有关软件包的信息,如名称、安装大小及其内容的简短描述等。另软件包还包含了属性依赖信息,即为了使文件可被安装和使用,必须安装的其他软件包、可执行文件和库文件等。在Linux安装光盘中,软件包文件通常位于Packages目录中。软件包文件的名称通常由下列几条信息构成:

    以CentOS 7中MySQL为例

RPM命令

    RPM命令是用来管理数据库的工具,如下所示:

RPM安装

RPM包安装格式如下:

其中各参数解释如下:

-i:代表安装

-v:代表verbose,在安装过程中显示详细的信息

-h:代表hash,在安装过程中将显示#表示安装进度

示例1:本地安装VSFTPD

    在上面我们使用的是本地安装,如果RPM软件包不在本地时,如何安装?RPM其实也支持在线安装。

示例2:在线安装VSFTPD

可与rpm -i结合使用的参数如下所示:

RPM卸载

    一旦安装了软件包,软件包文件则无关紧要了,该软件包现在就是本地计算机上面的一条数据库记录。因此,不再使用软件包文件名称,如vsftpd-3.0.2-22.el7.x86_64.rpm,而仅仅使用软件包名称,如vsftpd-3.0.2-22.el7.x86_64来指该软件包,使用

进行删除软件包,其中-e代表earse。

RPM升级

    使用RPM升级软件包非常方便简单,主要参数是-U,当然也可以直接写-Uvh或-Fvh,两者区别如下:

RPM查询

    RPM软件包查询中与rpm -q package-name结合使用的一些选项和作用如下所示:

1、查看已经安装的RPM包信息和安装的文件

2、查看RPM安装包的依赖项、提供的内容及最近安装包

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180808G1UP9U00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券