rpm包的管理
一、rpm包的介绍
简介
rpm全称是“redhat package manager”,最早是redhat公司开发的,后来在centos、fedora、suse都用它。而rpm包则是软件编译完成后按照rpm机制打包起来的一个文件,可以用rpm命令安装的一个软件安装包,它省去了linux软件安装中编译的步骤,安装成功后软件就可以用了。
二、常见软件封包的类型
三、包的常见安装位置
四、命令操作
1.查询已经安装的rpm包
查询已安装的RPM软件包的信息
格式: rpm -q [子选项] [软件名称] .
常用的子选项
–a:列出已安装的所有软件包
-i:查看指定软件的详细信息-
-l:查看指定软件的文件安装清单
// 查询安装的httpd服务
[root@www ~]# rpm -qa | grep httpd
httpd-tools-2.4.6-88.el7.centos.x86_64
httpd-2.4.6-88.el7.centos.x86_64
[root@www ~]# rpm -q httpd
httpd-2.4.6-88.el7.centos.x86_64
[root@www ~]# rpm -q bash
bash-4.2.46-31.el7.x86_64
// 查看详细信息
[root@www ~]# rpm -qi httpd
Name : httpd
Version : 2.4.6
Release : 88.el7.centos
Architecture: x86_64
Install Date: Tue 21 Dec 2021 02:58:38 AM CST
Group : System Environment/Daemons
Size : 9817309
License : ASL 2.0
Signature : RSA/SHA256, Mon 12 Nov 2018 10:28:53 PM CST, Key ID 24c6a8a7f4a80eb5
Source RPM : httpd-2.4.6-88.el7.centos.src.rpm
Build Date : Mon 05 Nov 2018 09:48:57 AM CST
Build Host : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://httpd.apache.org/
Summary : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
// 查看软件的文件安装清单
[root@www ~]# rpm -ql httpd
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/autoindex.conf
.......
2.查询软件的目录是由哪个软件带来的
// 查询某个目录/文件是哪个RPM包带来的
– 格式:rpm -qf [文件路径]…
– 即使目标文件被删除,也可以查询
[root@localhost ~]# which vim #查询命令对应的程序文件
/usr/bin/vim
[root@localhost ~]# rpm -qf /usr/bin/vim
vim-enhanced-7.4.160-4.el7.x86_64
[root@localhost ~]# rpm -q vim-enhanced
vim-enhanced-7.4.160-4.el7.x86_64
3.导入红帽的签名信息
在以前,软件包可能会藏有木马文件,为了安全,将软件进行了重新封装,并且加了一个红帽的签名,这个签名是加密生成的
// 导入红帽签名信息
[root@localhost ~]# rpm --import /mnt/RPM-GPG-KEY-CentOS-7
查询软件包信息
[root@localhost ~]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
4.安装rpm软件包
安装RPM软件
格式:rpm -i RPM包文件...
注意: i 必须要放在最前面
辅助选项
-v:显示细节信息
-h:以#号显示安装进度
--force:强制安装、覆盖安装
--test:测试安装,不做真实安装动作
[root@localhost ~]# rpm -q vsftpd
#查询当前的系统是否安装了该软件
[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
[root@localhost ~]# rpm -evh vsftpd
#卸载软件
[root@localhost ~]# rpm -q vsftpd
#查询当前的系统是否安装了该软件
显示未安装软件包 vsftpd
--force:强制安装、覆盖安装
[root@localhost ~]# which hostname
[root@localhost ~]# rm -rf /usr/bin/hostname
[root@localhost ~]# hostname
bash: hostname: 未找到命令...
[root@localhost ~]# rpm -qf /usr/bin/hostname
# 查看由哪个软件包产生
hostname-3.13-3.el7.x86_64
[root@localhost ~]# rpm -ivh --force /mnt/Packages/hostname-3.13-3.el7.x86_64.rpm