0. -------------------------------------------------- draft mostly come from [http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/index.html] 1.RPM文件格式 -------------------------------------------------- RPM包文件包含四节。第一节负责标记文件为一个RPM包。 剩余的分别是:signature、header和payload。 signature 签名负责校验包的完整性。通常用PGP或者MD5算法对包 头部和数据部分计算一个数学值 header 头部包含包的一些标签数据,包括:版权、版本、摘要等 payload 此节包含包的实际文件,文件通常会被压缩 RPM安装包的流程: 1.校验包 检查依赖包是否已经安装,检查是否已经安装或者版本太旧 2.安装前工作 3.解压文件并移动到合适的地方 4.安装后工作 5.更新RPM数据库 2.常用命令 -------------------------------------------------- rpm -ivh eruby-devel-0.9.8-2.i386.rpm -i install -v verbose -h hash(human-readable) rpm -Uvh eruby-devel-0.9.8-2.i386.rpm -U update erase older-version package and install the new one rpm -U --prefix /new/directory package.rpm --prefix instruct RPM to install pkg in a new location rpm -U --excludepath /usr/lib eruby-devel-0.9.8-2.i386.rpm --excludepath 更新包里的文件时,跳过excludepath里的文件 rpm -U --oldpackage eruby-devel-0.9.8-2.i386.rpm --oldpackage RPM通常不允许安装低版本的软件,除非你指定这个选项 --force 可以同时打开 --replacepkgs --replacefiles --oldpackages选项 rpm -U --nodeps eruby-devel-0.9.8-2.i386.rpm 强迫RPM忽略依赖关系的解决,直接安装软件 rpm -U --test eruby-devel-0.9.8-2.i386.rpm 测试依赖软件是否已经都得到解决 rpm -e package_name 删除一个包 rpm -q pck-name 查询RPM数据库某个包是否安装 -qa 可以查询系统所有已经安装的包,支持通配符查询 rpm -qi package 查询一个包的描述性信息包括:版本、安装日期、大小、概述等 rpm -qf filename 查询某个文件归哪个包所有 rpm -qlv package 查询包中的所有文件 -l list -v verbose rpm -qc package 查询一个包的配置文件 rpm -qd package 查询一个包的文档 rpm -qs package 查询一个包中所有文件的当前状态:正常或者未安装 rpm -q --scripts package RPM包包含安装前后,卸载前后的脚本 --scripts可以列出包里的这些脚本 rpm -qa --last | head 按时间倒序列出所有的安装文件 rpm -qa --queryformat "%{NAME}\n" 格式化查询所有的RPM包 NAME 包名 VERSION 版本号 RELEASE release版本号 SUMMARY 概述 DESCRIPTION 描述性信息 BUILDTIME 安装时间 BUILDHOST SIZE 安装文件大小 LICENSE 许可证 GROUP OS ARCH SOURCERPM CHANGLOGTIME CHANGELOGNAME CHANGELOGTEXT PREIN 安装前脚本 POSTIN 安装后脚本 PREUN 卸载前脚本 POSTUN 卸载后脚本 PLATFORM 平台 rpm -q --qf "[%{REQUIRENAME}%{REQUIREFLAGS:depflags}%{REQUIREVERSION}\n]" sendmail 列出一个包的所有依赖文件 @用--test命令貌似完全足矣@ rpm -q query_options --requires packages 查询一个包的依赖 rpm -q query_options --provides packages 查询一个包可以提供的能力(capabilities) rpm -q query_options --conflicts packages 查询与一个包冲突的包 rpm -q query_options --whatrequires capability rpm -q --whatrequires tcsh 查询哪个包依赖于某个能力 rpm -q --whatprovides capability 查询哪个包提供了某种能力 @可以与wahtrequires结合解决依赖@ rpm -q --triggers sendmail 查询一个包在安装和卸载时将会触发的运行脚本 rpm -q --triggeredby glibc 查询触发指定脚本的包
转载于:https://www.cnblogs.com/Anney/archive/2012/11/24/2785976.html