01-Linux系统-RPM包详解

一、RPM包详解

rpm命令执行安装rpm包和源码包,

  1. rpm包以.rpm结尾,
  2. 源码包以.src.rpm结尾

用rpm安装需要考虑如下信息:
  1. 需要考虑系统的版本需要与rpm对应
  2. 系统的架构:如32位还是64位
  3. 需要考虑依赖关系
  4. 有依赖关系,不能自动解决依赖关系。

二、RPM软件包命令规则

name-version-arch.rpm
name-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是源码包
特殊名称:
  1. el*:表示发行商的版本,el6表示这个软件包是在rhel6.x/centos6.x下使用;
  2. devel:表示这个rpm包是软件的开发包
  3. 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

2、查询

从本地的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`

3、卸载

语法:# 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`





01-Linux系统-RPM包详解

上一篇:02-Linux系统-YUM安装


下一篇:HMS数据库设置和优化