
RPM工具管理
1.RPM包简介
RPM是PM Package Manager缩写, 由红帽开发用于软件包的安装升级卸载与查询1.软件包类型
分类 安装 版本 rpm包 预先编译打包,安装简单 软件版本偏低 源码包 手动编译打包,安装繁琐 软件版本随意 二进制包 解压即可使用, 安装简单 不能修改源码 查看系统光驱中
RPM软件包如果你的系统中还有系统的安装盘,首先我们让虚拟机链接上我们的系统安装盘,然后我们可以通过
mount /dev/cdrom /mnt命令把光驱挂载到/mnt目录下,那么你会在/mnt/Packages目录下看到很多.rpm的包文件。[root@localhost ~]# mount /dev/cdrom /mnt/ mount: block device /dev/sr0 is write-protected, mounting read-only [root@localhost ~]# ls /mnt/ CentOS_BuildTag Packages RPM-GPG-KEY-CentOS-Security-6 EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6 GPL repodata TRANS.TBL images RPM-GPG-KEY-CentOS-6 isolinux RPM-GPG-KEY-CentOS-Debug-6 [root@localhost ~]# ls /mnt/Packages/|head
2.RPM包安装
使用rpm命令安装软件包, 需要了解如下参数:
-i: 安装 -v: 详细信息 -h: 安装进度 --test: 测试是否能够安装成功 --force: 强制重新安装 --nodeps: 忽略依赖关系 //安装软件包, 需要指定软件包绝对路径 [root@x86cloud ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm [root@x86cloud ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm //在软件包所在目录下可以不指定绝对路径 [root@x86cloud ~]# cd /mnt/Packages/ [root@x86cloud Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm //测试一个软件包是否能在该系统上安装 [root@x86cloud ~]# rpm -ivh --test /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm //如果软件包存在, 强制再次安装 [root@x86cloud ~]# rpm -ivh --force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm //安装samba服务需要依赖其他组件, 使用--nodeps可重新强制安装 [root@x86cloud ~]# rpm -ivh --nodeps /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
3.RPM包查询
使用rpm命令查询已安装好的rpm包, 需要了解如下参数:
rpm -q //查看指定软件包是否安装 rpm -qa //查看系统中已安装的所有RPM软件包列表 rpm -qi //查看指定软件的详细信息 rpm -ql //查询指定软件包所安装的目录、文件列表 rpm -qc //查询指定软件包的配置文件 rpm -qd //查询指定软件包的帮助文档 rpm -qf //查询文件或目录属于哪个RPM软件 rpm -q --scripts //查询rpm包安装前和安装后执行的脚本 //查询未安装的软件包信息 rpm -qip //查询未安装的rpm包详细信息 rpm -qlp //查询未安装的软件包会产生哪些文件 //查询vsftpd这个rpm包是否安装 [root@x86cloud ~]# rpm -q vsftpd //模糊查找系统已安装的rpm包 [root@x86cloud ~]# rpm -qa |grep ftp //查询vsftpd软件包的相关信息 [root@x86cloud ~]# rpm -qi vsftpd //查询rpm包所安装的文件 [root@x86cloud ~]# rpm -ql vsftpd //查询rpm包相关的配置文件 [root@x86cloud ~]# rpm -qc vsftpd //查询配置文件或命令来自于哪个rpm包 [root@x86cloud ~]# rpm -qf /etc/vsftpd/vsftpd.conf [root@x86cloud ~]# rpm -qf /usr/sbin/vsftpd //查询未安装的软件包会产生哪些文件 [root@x86cloud ~]# rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm //查询未安装的软件包会产生哪些文件 [root@x86cloud ~]# rpm -qip /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
4.RPM包升级
-U 如果老版本不存在,就全新安装,如果存在有新版即升级
-f 老版本必须存在//如果有新版则升级, 软件升级不要跨操作系统主版本号 [root@x86cloud ~]# rpm -Uvh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
5.RPM包卸载
卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。
//先查询, 然后卸载 [root@x86cloud ~]# rpm -qa |grep sh [root@x86cloud ~]# rpm -e zsh
6.RPM包校验
软件相关的数据库存放于
/var/lib/rpm目录[root@x86cloud ~]# rpm -V vsftpd S.5....T. c /etc/pam.d/vsftpd .......T. c /etc/vsftpd/ftpusers S.5....T. c /etc/vsftpd/vsftpd.conf .M....... /var/ftp/pub S //文件的容量大小是否被改变 M //文件的类型或者文件的属性是否被修改 5 //MD5这一种指纹加密的内容已经不同 D //装置的主/次代码已经改变 L //路径已经被改变 U //文件的所属主已被修改 G //文件的所属组已被修改 T //文件的创建时间已被改变