软件包的核心功能:制作、安装、卸载、升级、查询、校验 前端工具:yum apt-get 后端工具:rpm dpt(rpm模仿dpt而来) rpm命名: 包:组成部分 主包: bind-9.7.1-1.el5.i586.rpm 子包: bind-libs-9.7.1-1.el5.i586.rpm bind-utils-9.7.1-1.el5.i586.rpm 包名格式: name-version-release.arch.rpm bind-major.minor.release-release.arch.rpm

主版本号:重大改进 次版本号:某个子功能发生重大变化 发行号:修正了部分bug,调整了一点功能 rpmbulid:用来将源代码打包成.rpm格式的工具 1、安装 rpm -i /PATH/TO/PACKAGE_FILE -h: 以#显示进度;每个#表示2%; -v: 显示详细过程 -vv: 更详细的过程

rpm -ivh /PATH/TO/PACKAGE_FILE

--nodeps: 忽略依赖关系;
--replacepkgs: 重新安装,替换原有安装;
--force: 强行安装,可以实现重装或降级;

2、查询 rpm -q PACKAGE_NAME: 查询指定的包是否已经安装 rpm -qa : 查询已经安装的所有包

rpm -qi PACKAGE_NAME: 查询指定包的说明信息; rpm -ql PACKAGE_NAME: 查询指定包安装后生成的文件列表; rpm -qc PACEAGE_NEME:查询指定包安装的配置文件; rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件;

rpm -q --scripts PACKAGE_NAME: 查询指定包中包含的脚本

rpm -qf /path/to/somefile: 查询指定的文件是由哪个rpm包安装生成的;

如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件; rpm -qpi /PATH/TO/PACKAGE_FILE rpm -qpl

3、升级 rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装; rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,退出; --oldpackage: 降级

4、卸载 rpm -e PACKAGE_NAME --nodeps

5、校验 rpm -V PACKAGE_NAME

6、重建数据库 rpm --rebuilddb: 重建数据库,一定会重新建立; --initdb:初始化数据库,没有才建立,有就不用建立;

7、检验来源合法性,及软件包完整性; 加密类型: 对称:加密解密使用同一个密钥 公钥:一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来,并公开出去;

单向:

ls /etc/pki/rpm-gpg/ RPM-GPG-KEY-redhat-release

rpm -K /PAPT/TO/PACKAGE_FILE dsa, gpg: 验正来源合法性,也即验正签名;可以使用--nosignature,略过此项 sha1, md5: 验正软件包完整性;可以使用--nodigest,略过此项

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release: 导入密钥文件 rpm -i :安装rpm软件包,需要给出软件包的完整文件名 rpm -e(erase):卸载rpm软件包,给出软件包的名称即可 rpm -U :更新软件包,需要给出软件包的完整文件名 rpm -q :查询rpm软件包,包名即可 rpm -v :显示详细信息 rpm -f :强制执行操作 rpm -h :显示执行进度 rpm -ivh zenoss-2.1.1-0.e15.i386.rpm #安装zenoss rpm软件包,并显示安装进度 rpm -Uvh zenoss-2.1.1-0.e15.i386.rpm #-U比-i更友好。当软件存在时,进行升级;不存在时,进行安装 警告:在安装内核时,应该使用-i。因为-U选项对内核升级后,新的内核将不能工作。另一方面,如果用-i选项安装了一个新的内核,旧的内核作为备份仍然在计算机上存在。 rpm -q bind #查询“bind”软件包是否安装 rpm -qf /etc/exports #查询文件所属的rpm包 rpm -ql time #查询“time”软件包的所有文件 rpm -e zsh #卸载“zsh”软件包