RPM软件包管理
一、概述
1、RPM是什么
RPM是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,算是一种行业标准。它是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件,.rpm扩展迷宫的文件都可以用RPM工具进行管理。
2、RPM有什么功能
- 安装、卸载、升级和管理软件
- 组件查询功能
- 验证功能
- 软件包GPG和MD5数字签名的导入、验证和发布
- 软件包依赖处理
- 选择安装
- 网络远程安装功能
二、安装rpm软件包
1、安装本地包
rpm -ivh 完整路径和名称
- -i:安装rpm包
- -v:显示详细的处理信息
- -h:用#显示安装进度
- - -force:强制安装
2、安装光盘中的包
yum安装的时候我们配置本地yum源的路径就是光盘的挂载目录,但是我们也可以使用rpm去安装光盘里的软件包
3、安装网络上的包
如果本地有这个软件包的话我们直接rpm安装即可,如果本地没有,那我们也不用下载到本地安装,可以直接使用rpm后面跟网络地址就可以安装了
这里有一个rpm下载的网站,可以查找你想要安装的包:https://pkgs.org/
这里以安装httpd为例,搜索httpd出现以下页面,选择你所要安装在哪个系统上(CentOS 7)还有你要安装哪个架构的,必须和你自己使用的系统相匹配才可以
点击进入详情页,关于httpd软件有非常详细的介绍,列出了软件描述,软件依赖,下载地址,怎样安装以及它提供哪些东西和它会安装哪些东西还有更新信息等
rpm -ivh 后面跟网络路径就可以了(因为要先下载再安装所以时间可能会比较长)
4、导入签名
有一种情况:安装包的时候虽然成功了但是提示了警告,原因是因为没有检查签名
签名存放的位置:/etc/pki/rpm-gpg
因为ntfs-3g是来自epel源,所以匹配的签名是epel-7这个签名
rpm --import:导入签名
三、卸载rpm软件包
rpm -e 后面跟软件包的名字即可
四、解决软件包的依赖
用rpm管理软件包的时候,不管是安装还是卸载都会遇到一个核心的问题,那就是它不负责解决依赖性关系,不像yum自动安装依赖包,rpm需要手动解决依赖关系的问题
1、安装
–nodeps:忽略依赖关系(不建议使用)
所以这就是为什么rpm包安装的时候需要先安装依赖包的原因了
2、卸载
卸载的时候也会遇到因为依赖的问题而无法卸载的问题
如果是用yum卸载的话,yum会将存在依赖关系的包一起卸载!
五、查询rpm软件包
1、已安装软件包
查询已安装的软件包是从本地rpm数据库中查找的
本地rpm数据库:/var/lib/rpm
rpm -q 软件名
#查询已安装的软件包
rpm -qi 软件名
#查询已安装的软件包的详情
rpm -qc 软件名
#查询已安装的软件包的配置文件
rpm -ql 软件名
#查询已安装的软件包所有在系统中安装的文件
rpm -qd 软件名
#查询已安装的软件包的帮助文件
rpm -qf 路径
#查询已安装的软件是由哪个安装包安装的
rpm -qa
#查询系统中所有已安装的软件包
假如你不记得软件包的具体名字你可以使用这种方法后面跟管道符过滤一下
rpm -qR 软件名
#查询已安装软件包所需要的依赖包
2、未安装软件包
未安装的软件包的信息是从这个软件包中查询的,所以后面必须跟路径和具体名称
rpm -qpi 具体软件包名称
#查询未安装软件包的详情
rpm -qpR 完整软件包
#查询未安装软件包所需要的依赖包
和查询已安装软件包的命令是一样的,只需要在选项中加上p就是查询未安装的
如:rpm -qpl 等
六、升级rpm软件包
rpm -U 完整软件包
#升级rpm软件包
七、RPM的优缺点
优点:不需要配置,只要有软件包就可以安装
缺点:
1、需要确定系统的版本,架构找到匹配的软件包
2、安装前需要确定所需要的依赖包并且都要先下载安装好
建议:如果你的服务器可以联网,建议还是使用yum安装软件吧
来源:oschina
链接:https://my.oschina.net/u/4314216/blog/4337098