标签:作业
程序包管理:
将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作;
获取程序包的途径
(1)系统发版的光盘或官方的服务器; CentOS镜像: http://mirrors.aliyun.com http://mirrors.sohu.com http://mirrors.163.com (2) 项目官方站点 (3) 第三方组织: Fedora-EPEL 搜索引擎: http://pkgs.org http://rpmfind.net http://rpm.pbone.net (4) 自己制作
CentOS系统上rpm命令管理程序包:
功能:安装、卸载、升级、查询、校验、数据库维护
安装
格式:rpm -i[option] PACKAGE_FILE 选项: -i:表示install安装 -v -vv:表示显示安装过程,后者显示更加详细; -h:以#号显示进度条格式; –nodeps:忽略依赖关系 –force:强制动作,注意安装成功后可能不能运行; –test:测试安装,作为测试检查 –nosignature:不检查签名就是来源合法性; –nodigest:不检查包完整性;MD5头;
升级
格式: rpm -U|F[optIon] PACAGE_FILE 选项: -U:表示不管软件事先是否存在都要升级,存在就升级,不存在就安装; -F:表示软件软件存在就升级,如何不存在,就放弃升级; -oldpackage:降级,如果升级之后发现有Bug或者兼容性问题,可以使用此选项回滚到升级前的版本; -force:强制动作,注意安装成功后可能不能运行; -replacepkgs:注意不能替换配置文件; 注意: (1)不要对kernel做升级操作;支持多kernel并存;可以直接安装; (2)修改过的配置升级不会覆盖,升级同新文件,会重命名为file.rpmnew
查询:
格式:rpm -q[option] [PACKAGE-NAME|PACKAGE_FILE] 选项: -qa:查询系统所有已安装的程序包; -qf /path/to/file:查询文件是由那个程序包生成; -ql:查询程序生成的文件: -qi:查询程序属性信息; -qc:查询程序配置文件; -qd:查询程序提供的文档 -q -whatprovides CAPABILITY(功能):查询这种CAPABILITY由那个程序提供; -q -whatrequires CAPABILITY:查询这种CAPABILITY被哪些程序包依赖; -q -scripts:查询程序包生成的脚本; -q -changelog:查询软件历史 查询未安装的软件包信息,需要加-p选项跟上面的选项结合使用,后面的参数必须是PACKAGE_FILE; 列如: -qpi:查询指定PACKAGE_FILE的程序属性信息;
卸载
格式:rpm -e[option] PACKAGE-NAME 选项: -vh:显示过程 -nodeps:忽略依赖 -noscripts:忽略脚本 -allmatches:卸载所有匹配指定名称的程序包,也就是说卸载软件名称中包含此名称的所有包; -test:测试检查卸载,不是真卸载 注意: 卸载会检查依赖关系,如果卸载的软件被其他程序依赖,请谨慎卸载,否则导致其依赖程序无法运行;
校验
工作原理:校验检查的是软件包来源的合法性和完整性,要想对它们校验检查,必须要有校验机制,这种机制是根据签名和加密实现的,通常发行版的光盘中会有一个包含所有软件特征码的文件,特征码是根据软件包特征提取的,通过单项加密实现的用来校验软件包的完整性,如果软件包在获取途中被修改,在系统中再次提取软件包特征码,跟系统已有的特征码文件比对,不同则判断被攥该,修改过的软件包,根据相同的加密算法提取的特征肯定不同;来源合法性是根据签名实现的;特征码文件被称为公钥;校验是由校验程序完成的,默认rpm命令安装时会调用; 公钥获取: 官方网站 系统光盘 系统配置文件中,这是系统在安装时从安装光盘复制进去的 系统公钥位置:/etc/pik/rpm-gpg/RPM-GPG-KEY-CentOS-7 导入公钥: rpm –import /path/to/pub.key 校验软件: rpm -V PACKAGE-NAME:校验安装文件自安装后是否被修改过,根据PMS记录信息判断; rpm -K PACKAGE_FILE:对指定未安装的软件包进行手工校验;
数据库重建
默认数据库目录位置:/var/lib/rpm 语法格式: rpm –initdb :初始化数据库 rpm –rebuilddb :重新构建 –dbpath=/path/ :指定数据库创建位置;
标签:作业
原文地址:http://11884010.blog.51cto.com/11874010/1845637