rpm包基本介绍

程序包: 源代码:tgr.gz , tar.bz2 , tar.xz 包管理器:rpm格式 appname-version-release-ARCH.rpm

常见的包管理器: 1,.deb: debian .rpm:red hat Package Manager

rpm包命名格式: appname-version-release-ARCH.rpm version: major:主版本号 minor:次版本号 release:发行号

release:包自己的修订号,有时候,包含适用于的OS信息 ARCH:适用的平台。x86:i386,i686 x86_64,amd64,x86_64 powerpc:ppc noarch:根平台无关:

  分包机制: 核心包:主包:命名与源项目名称一致: 子包(支包):命令为源项目名称后附加支包中的文件提供的功能组成 -devel-

获取程序包的途径: 1,系统光盘或官方站点镜像服务器获取 mirrors.sohu.com mirrors.163.com mirrors.aliyun.com 2,程序包官方站点

 

建议:安装之前要验证的其合法性 来源合法: 包完整性

安装: rpm -i或者--install 程序包 ...

-h:hash,以#来表示安装进度: -v,--verbose:显示安装过程中的详细信息: vvv显示更详细的信息

安装时常用组合:-ivh,-ivvh ,-ivvvh

--test:测试安装,仅显示报告和依赖关系及冲突信息等。

程序包之间存在依赖关系: 由众多的单一的小程序组成;程序包之间存在相关性;

-nodeps:忽略依赖关系:能安装成功,但未必能成功运行。

--replacepkgs:覆盖安装:重新安装并覆盖原有的文件

-force:强制安装:

升级:-u :升级或安装 -f:升级 组合:-Uvh,-Fvh

注意:一定不要对内核进行升级;linux允许多内核共存,所以,可以直接安装多个不同版本内核;

注意:如果程序包的配置文件安装后曾被修改,升级时,新版本的配置文件不会覆盖老版本的配置文件,而是把新版本的配置文件,重命名后保存(重命名:加rpmnew)。 rpm -e 卸载 rpM 移除已经安装的程序包, 简单用法:rpm -e 包名 --allmatches:如果一个程序包同时安装多个版本,则此选择一次全部卸载之 --nodeps:忽略依赖关系卸载 --test:测试卸载;dry-run模式 注意:如果程序包的配置文件安装后曾配修改过,卸载时,此文件通常不会被删除,而是被重命名(加后缀,rpmsave)后留存;

查询: rpm -q 查询 rpM 查询某包是否已经安装,以及检查安装的所有包,还可以查看某包的详细信息 rpm -q 包名:查询某包或某些包是否安装

rom -qa 包名;查询已经安装的所有包

rpm -qf /path/to/shmefile :查询某文件是由哪个包安装生成:

rpm -qpi 包文件路径:查询尚未安装的包文件相关信息

[query-options] rpm -qi 包名 :查询某包的简要说明信息

rpm -ql 包名 :查询某包安装生成的文件列表:

rpm -qc 包名 :查询某包安装完成后的生成的配置文件

rpm -qd 包名 :获取某包安装完成后的帮助文档信息

rpm -q --changelog 包名 :查看某包制作时随版本变化的changelog信息

pm -q --provides 包名:查询某包提供的capabilities:

rpm -q --requires 包名:查询某包的依赖capabilities;

rpm -q --scripts 包名:查询某包安装或卸载时执行脚本 脚本有四类:

安装前脚本:preinstall 安装后脚本:postinstall 卸载前脚本:preuninstall 卸载后脚本:postuninstall

校验: rpm -V 包名:大V查询包安装之后生成的文件是否发生了改变

包合法性验证: 来源合法: 由信任的制作者提供 依赖于:制作者的数字签名:签名是作者使用自己的私钥加密程序包的特性码进行的 内容合法: 包未被二次修改:完整性校验成功 依赖于:制作者提供的程序特征码: 验证方式:安装者用同样的特征码提取算法提取程序包的特征码,并与原作者提供的相比较

验证其光盘中的程序包的来源及完整性: rpm --import /dev/cdrom/ key-file导入 rpm -大K 包文件

验证: rpm --nosignature:不检查来源完整性 rpm --nodiest :不检查完整性 rpm管理数据库默认路径:/var/lig/rpm 重建数据库 : rpm [--initdb|--rebuilddb][-v][--dbpath directory] rpm --initdb :初始化数据库,即数据库完全不存在时,可新建

rpm --rebuilddb:无论当前数据存在于否,都会直接重新此库