描述:RPM 全名是『 RedHat Package Manager 』node
优势:linux
1. 因为已经编译完成而且打包完毕,因此安装上很方便( 不须要再从新编译 );web
2. 因为套件的信息都已经记录在 Linux 主机的数据库上,很方便查询、升级与卸载;数据库
缺点:ui
1. 安装的环境必须与打包时的环境需求一致或至关;.net
2. 须要知足套件的相依属性需求;orm
3. 卸载时须要特别当心,最底层的套件不可先移除,不然可能形成整个系统的问题!ip
SRPM 是 Source RPM,与 RPM 档案相比, SRPM 多了一个从新编译的动做,咱们就能够透过修改 SRPM 内的参数设定,从新编译产生能适合咱们 Linux 环境的 RPM 档案。md5
rpm 就会将套件的信息写入:/var/lib/rpm 这个目录中,因此, 日后您在进行查询的时候或者是预计要升级的时候,相关的信息就会由 /var/lib/rpm 这个目录的内容数据来提供。开发
注意:使用RPM时可能会遇到软件包依赖性的问题,第一种解决方式是安装好全部的依赖包,第二种方式是使用urpmi/apt/yum来自动安装依赖包。
RPM 安装包
[root@linux ~]# rpm -ivh rp-pppoe-3.1-5.i386.rpm
[root@linux ~]# rpm -ivh a.i386.rpm b.i386.rpm *.rpm
[root@linux ~]# rpm -ivh http://website.name/path/pkgname.rpm
[root@linux ~]# rpm -ivh --relocate /=/opt/rp rp-pppoe-3.1-5.i386.rpm
为安装包指定安装目录 使用--relocate
可以使用的参数包括--nodeps, --nomd5, --noscripts, --replacefiles, --replacepkgs(已安装的软件再安装一次), --force, --test(检测依赖关系)
RPM 升级包
[root@linux ~]# rpm -Uvh rp-pppoe-3.1-5.i386.rpm
后面接的套件即便没有安装过,则系统将予以直接安装; 若后面接的套件有安装过旧版,则系统自动更新至新版;
[root@linux ~]# rpm -Uvh --oldpackage rp-pppoe-3.0-5.i386.rpm
降级要加--oldpackage
[root@linux ~]# rpm -Fvh rp-pppoe-3.1-5.i386.rpm
若是后面接的套件并未安装到您的 Linux 系统上,则该套件不会被安装;亦即只有安装至您 Linux 系统内的套件会被『升级』!
RPM 查询包
[root@linux ~]# rpm -qa
[root@linux ~]# rpm -q[licdR] 已安装的套件名称
[root@linux ~]# rpm -qf 存在于系统上面的某个档案
[root@linux ~]# rpm -qp[licdR] 未安装的某个文件名称
参数:
查询主要分为两部分,一个是查已安装,另外一个则是查某个 rpm 档案内容。
查询已安装套件的信息:
-q :仅查询,后面接的套件名称是否有安装;
-qa :列出全部的,已经安装在本机 Linux 系统上面的全部套件名称;
-qi :列出该套件的详细信息 (information),包含开发商、版本与说明等;
-ql :列出该套件全部的档案与目录所在完整文件名 (list);
-qc :列出该套件的全部配置文件 (找出在 /etc/ 底下的文件名)
-qd :列出该套件的全部说明档 (找出与 man 有关的档案而已)
-qR :列出与该套件有关的相依套件所含的档案 (Required 的意思)
-qf :由后面接的文件名称,找出该档案属于哪个已安装的套件;
查询某个 RPM 档案内含有的信息
-qp[icdlR]:注意 -qp 后面接的全部参数以上面的说明一致。但用途仅在于找出某个 RPM 档案内的信息,而非已安装的套件信息!
RPM 验证包
[root@linux ~]# rpm -Va
[root@linux ~]# rpm -V 已安装的套件名称
[root@linux ~]# rpm -Vp 某个 RPM 档案的档名
[root@linux ~]# rpm -Vf 在系统上面的某个文件
RPM 卸载包
[root@linux ~]# rpm -e 套件名称
若是有依赖关系,您也能够用--nodeps 忽略依赖的检查来删除。
重建数据库
[root@linux ~]# rpm --rebuilddb
REBUILD 安装包
--rebuild
这个参数会将后面的 SRPM 进行『编译』与『打包』的动做,最后会产生 RPM 的档案,可是产生的 RPM 档案并无安装到系统上。
--recompile
这个动做会直接的『编译』『打包』而且『安装』啰!请注意, rebuild 仅『编译并打包』而已,而 recompile 不但进行编译跟打包,还同时进行『安装』了!