一、RPM包详解
rpm命令执行安装rpm包和源码包,
- rpm包以.rpm结尾,
- 源码包以.src.rpm结尾
用rpm安装需要考虑如下信息:
- 需要考虑系统的版本需要与rpm对应
- 系统的架构:如32位还是64位
- 需要考虑依赖关系
- 有依赖关系,不能自动解决依赖关系。
二、RPM软件包命令规则
name-version-arch.rpmname-version-arch.src.rpm
示例:bind-9.8.2-0.47.rc1.el6.x86_64.rpm
示例解析:
1.name,如:bind,是软件的名称特殊名称:
2.version,如:9.8.2-0,是软件的版本号,版本号格式通常为“主版本号.次版本号.修正号”。47,是发布版本号,表示这个rpm软件包是第几次编译生成的
3.arch,如i386,是表示包适用的硬件平台,目前rpm支持的平台有:i386,i586,i686,sparc和alpha
4..rpm和.src.rpm,是rpm包类型后缀,rpm是编译好的二进制包,.src.rpm是源码包
- el*:表示发行商的版本,el6表示这个软件包是在rhel6.x/centos6.x下使用;
- devel:表示这个rpm包是软件的开发包
- noarch:说明这样的软件包可以在任何平台安装和运行,不需要特定的硬件平台
三、RPM常用命令
1、安装
语法 # rpm -ivh 软件包名称
-i install
-vh verbose human
-U upgrade 升级
查找rpm包的网站:http://rpmfind.net/ http://pkgs.org
1.通过rpm安装
可以先下载下来
[root@proxy2 ~]# wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/n/ntfs-3g-2017.3.23-11.el7.x86_64.rpm
#wget下载命令
#wget -O 指定存放路径
[root@proxy2 ~]# rpm -ivh ntfs-3g-2017.3.23-11.el7.x86_64.rpm #本地安装rpm包
2.直接通过连接安装rpm包
[root@proxy2 ~]# rpm -ivh http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/n/ntfs-3g-2017.3.23-11.el7.x86_64.rpm
从本地的rpm数据库
语法:
-q query
-l list
-f file
-a all
-i file
1、查找软件是否安装
[root@proxy2 ~# rpm -qa | grep 软件名 #
2、查询http安装的文件
[root@proxy2 ~]# rpm -ql httpd #
3、查询该文件属于哪个包
[root@proxy2 ~]# rpm -qf /usr/share/httpd/noindex #
4、查询某一个文件是哪个软件产生的:只能查询已经安装好的软件
[root@proxy2 ~]# rpm -qf /etc/passwd #
5、查看命令是哪个安装包安装,安装包里有哪些文件?
[root@proxy2 ~]# rpm -qfl `which ssh`
6、查看软件包信息
[root@proxy2 ~]# rpm -qfi `which ssh`
语法:# rpm -e 软件名称
-e erase
[rroot@proxy2 ~]# rpm -e httpd
4、其他命令
-ivh 安装并显示安装进度(规则:rpm –ivh 包名)
示例:rpm –ivh bind-9.8.2-0.47.rc1.el6.x86_64.rpm
-Uvh 升级软件包(rpm –Uvh 包名 //升级软件包-旧升新,低升高)
示例:rpm –Uvh --oldpackage bind-9.8.2-0.47.rc1.el6.x86_64.rpm(新版本软件包降级为旧版本)
-ql 列出rpm软件包内的文件信息(显示已安装软件包内容)
示例:rpm –ql vsftpd (规则:rpm –ql 软件名)
-qi 列出rpm软件包描述信息(显示已安装软件包属性)
示例:rpm –qi bind (规则:rpm –qi 软件名)
-qf 查看指定文件属于哪个软件包(rpm –qf 文件名)
示例:rpm –qf /etc/rc.d/init.d/named
-Va 校验所有rpm包,查找丢失的文件
-e 删除rpm软件包(rpm –e 包名)
示例:rpm –e bind-9.8.2-0.47.rc1.el6.x86_64.rpm
-qpR 查看rpm包依赖关系
示例:rpm –qpR 包名
--force 忽略软件包及文件的冲突,即强制安装(长格式命令)
--nodeps 忽略软件包的依赖关系(长格式命令)
--test 安装测试,并不实际安装(长格式命令)
示例:测试--nodeps和--test,rpm –ivh httpd-2.2.15-53.el6.x86_64.rpm --test 并不安装,测试一下httpd软件包的依赖
安装到指定目录(未测试成功)
rpm -ivh --relocate /=/tmp/11 httpd-2.2.15-53.el6.x86_64.rpm --nodeps
查看命令是哪个安装包安装,安装包里有哪些文件?
一步到位:rpm -qfl `which rz`
查看软件包信息
一步到位:rpm -qfi `which rz`