软件包管理(2)

2020-09-07   艺麟盛世

原标题:软件包管理(2)

rpm的介绍

前面的课程我们提到过源码包安装需要解决系统环境、权限等等,这些对于初学者而言都是噩梦一般的存在,所以linux厂商推出了一种类似windows系统中的安装方式,有开发者直接在已知的系统中编译好,使用者可以直接下载并进行安装,升级,卸载等操作。在linux中能够提供这些功能的软件有两种,rpm和dpkg,而在CentOS中使用的是RPM

rpm最早是由redhat开发出来,由于很好用,所以很多发行版也利用rpm来进行软件包的管理。RPM全名RedHat Package Manager,最大的特点就是把需要安装的软件提前编译,打包,然后在rpm包里面存放了用以记录软件依赖关系的相关数据,当用户安装时,优先查看这些数据,如果系统满足数据要求就安装软件包,否则不能安装,安装完成后,将软件包相关信息记录到rpm自己的数据库中,便于查询和卸载等。所以说rpm的优点是方便安装,卸载,查询,缺点就是只能在指定的操作系统上使用,所以不同厂商的rpm包,甚至同一厂商不同版本操作系统的rpm包都不通用。

rpm包的命名

dhcp-server- 4.3.6 -30 .el8 .x86_64 .rpm

软件名称 版本 编译次数 适用的系统 适用的平台 后缀名

软件名 就是软件包的名称

版本 每次更新版本号都会改变,用来帮助用户判断软件包新旧的

编译次数 也是帮助用户判断软件包新旧的

适用的系统 在哪个系统上可以安装,CentOS和rhel的多数软件包都是通用的

适用的平台 指的是硬件平台,比如如果你是32位的CPU就无法安装这个软件包

rpm的使用

rpm包的相关文件一般都会放在对应的目录中,比如rpm包安装后,配置文件会放在/etc下,执行文件会放在/usr/bin下,链接库文件会放在/usr/lib下,帮助与说明文档会放在/usr/share/man和/usr/share/doc目录下

安装

[root@localhost Packages]# rpm -ivh dhcp-server-4.3.6-30.el8.x86_64.rpm

-i 安装

-v 显示详细信息

-h 显示安装进度

-e 卸载

-U 升级,如果系统中有低版本的就会升级,如果系统没有安装相应的包,则安装

-F 有条件的升级,会检测用户指定的软件包是否已安装到linux中

--nodeps 忽略软件包之间的依赖关系

--replacefiles 覆盖文件

--replacepkgs 修复

--force 强制

--test 测试

-q 查询指定的软件包是否安装

-qi 查看指定的软件包的信息,包括开发商,版本,说明

-ql 查看指定软件包中所包含的文件列表

-qc 查看指定软件包的配置文件

-qa 查看本机安装的所有包

-qf 查看一个文件归属于哪个已安装的软件包