对于Linux而言管理各类软件,如安装、卸载和升级等是常有的事情和必备的技能。以CentOS为例,常用的安装包命令有rpm和yum。
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安装包的依赖项、提供的内容及最近安装包
领取专属 10元无门槛券
私享最新 技术干货