程序包:
源代码: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:无论当前数据存在于否,都会直接重新此库