软件安装--RPM包安装
RPM安装:RedHat Package Manager的缩写,是红帽软件包工具。RPM的设计理念是提供一种可升级,具有强大查询功能,支持安全验证的通用型Linux软件包管理工具。由于这种软件管理方式非常方便,所以逐渐被其他Linux发行版所借用。现在已经称为Linux平台下通用的软件包管理方式。
1.RPM安装的优劣
⑴RPM包优点:
※安装简单方便。
※安装时不用指定安装位置。
※方便升级、卸载。
⑵RPM包缺点:
※大多数RPM安装需要解决依赖关系。
e.g.安装gcc----rpm安装依赖问题难解决
[root@localhost Packages]#rpm -ivh gcc-4.8.5-36.el7.x86_64.rpm
[root@localhost Packages]#rpm -ivh cpp-4.8.5-36.el7.x86_64.rpm
[root@localhost Packages]#rpm -ivh glibc-devel-2.17-260.el7.x86_64.rpm
[root@localhost Packages]#rpm -ivh glibc-headers-2.17-260.el7.x86_64.rpm
[root@localhost Packages]#rpm -ivh kernel-headers-3.10.0-957.el7.x86_64.rpm
[root@localhost Packages]#rpm -ivh glibc-headers-2.17-260.el7.x86_64.rpm
[root@localhost Packages]#rpm -ivh glibc-devel-2.17-260.el7.x86_64.rpm
[root@localhost Packages]#rpm -ivh gcc-4.8.5-36.el7.x86_64.rpm
#安装GCC过程中因为有软件包依赖关系,所以安装过程显得特别困难。
2.RPM包命名规则:
e.g. httpd-2.2.15-53.el6.centos.x86_64.rpm
httpd--软件包名 2.2.15--软件版本
53--软件发布次数 el6.centos---适合的Linux平台
x86_64--适合的硬件平台 rpm--rpm包扩展名
3.RPM命令管理
1)RPM安装命令:
格式:rpm -ivh 软件包名(全名)
-i 等同--install即安装软件,
-v 显示安装过程中的详细信息
-h 以#号显示安装的进度
--percent 以百分比的形式输出安装进度
--nodeps 不检测依赖安装(虽看起来安装成功,但使用中会出问题)
--test 测试安装,不真正安装,检测软件依赖关系
--force 强制安装,不管软件是否存在,都强制重新安装(也用于强制重新安装某软件,恢复丢失文件)
--prefix 指定安装路径,不按照默认路径安装则系统不识别,要手动配置
2)卸载命令:
格式:rpm -e 软件名(不用指定包全名【包名≠命令名】)
--nodeps 不检测依赖关系卸载
e.g.安装RPM包tree命令:
[root@localhost Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
卸载:
[root@localhost Packages]# rpm -e tree #卸载时不用指定包全名。
3)升级命令:
格式:rpm -Uvh 软件包全名
-U 升级安装,若没安装则直接安装,若安装有旧版本,则升级安装。
-F 升级安装,若没安装,则不安装,必须有旧版本才进行升级安装。
4)查询已安装的软件信息:
rpm -q 包名 查询包是否安装 (显示包全名)
rpm -qa 查看系统中已安装的所有RPM软件包列表
rpm -qi 包名 查看指定软件所安装的信息(安装、版本信息、路径等)
rpm -ql 包名 查看指定软件所安装目录,文件列表
rpm -qR 包名 查询指定软件的依赖文件(安装后查看,意义并不大)
rpm -qc 包名 查询指定软件的配置文件
5)查询未安装的RPM包文件:
格式:rpm -qp RPM包全名(带路径)(包—>文件)
rpm -qpl 包全名#查询指定未安装软件所安装的目录、文件列表
rpm -qpR 包全名#查询指定未安装软件的依赖文件
6)查询文件或者目录属于哪个RPM软件
格式:rpm -qf 文件或目录名(文件—>包)
7)验证:
rpm -V 已安装软件包名 校验指定RPM包中的文件
rpm -Vf 系统文件名(安装软件生成的) 校验某个系统文件是否被修改
(修改后的提示信息:e.g. S.5·····T,S-长度有变化,5-MP5检验,T-文件日期有变动,也有G-用户组修改,U-所有者修改)
8)提取软件包文件修复
rpm2cpio命令可以提取指定RPM包中的文件,实现文件恢复。
格式:rpm2cpio 包全名 | cpio -idv ./命令绝对路径。
#此操作必须在/目录下执行,因为恢复出来的文件是绝对路径,在/目录下可以直接指定路径到默认所在目录。
注:修复的软件不再属于,不可通过rpm -e 包名 的方式删除,有相关的配置文件发生了变动。
e.g.误删除一些重要文件的恢复
假设不小心把系统下/bin/ls命令删除了,使用时报错,需要恢复。
恢复步骤:
先确定ls命令属于哪个软件包 rpm -qf /bin/ls ----coreutils-8.4-43.el6.x86_64
提取RPM包中ls命令,并恢复到指定目录下 rpm2cpio /mnt/sr1/Packages/coreutils-8.4-43.el6.x86_64.rpm | cpio -idv ./bin/ls