软件包管理器的核心功能

1、制作软件包

2、安装、卸载、升级、查询、校验


Redhat、SUSE、Debian

Redhat、SUSE:RPM

    Redhat Package Manager

    RPM is Package Manager

Debian:dpt


安装软件包的时候经常会遇到包依赖关系

X-->Y-->Z

X-->Y-->Z-->X

自动解决依赖关系的管理工具

前端工具:yum、apt-get

    yum:yellowdog update modifier

后端工具:RPM、dpt


rpm命令:

    rpm:

        数据库/var/lib/rpm

    rpmbuild:创建RPM包


rpm命名

包组成部分:rpm包有主包和分包

    主包:bind-9-7-1.1-e15.i386.rpm

    子包:bind-libs-9-7-1.1-e15.i386.rpm

    bind:单个包

    bind-libs:主包-分包

    

包名格式:name-version-release.arch.rp(有源程序的RPM包和二进制的RPM包)

    名称-主版本号、次版本号、源程序发行号-rpm包的发行号.主机平台.cpu架构


主版本号:重大改进

次版本号:某个子功能发生重大改变

发行号:修正了部分BUG,调整了一点功能


安装、查询、卸载、升级、校验、数据库的重建、验证数据包等工作


rpm:

1、安装

rpm -i package_file

    -h 以#号显示进度 每个#表示2%

    -v 显示详细过称

    -vv 显示更详细过称

    --nodeps 忽略依赖关系

    --replacepkgs 重新安装替换原有的安装

    --force 强行安装 可以实现重新安装或降级

通常组好使用 rpm -ivh package_file


2、查询

rpm -q package_name 查询指定的包是否已经安装

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

    -qi 查询指定包的说明信息

    -ql 查询指定包安装后生成的文件列表

    -qf 查询指定的文件是由哪个RPM包安装生成的

    -qc 查询指定包安装的配置文件

    -qd 查询指定包安装的帮助文件

    -q --scripts package_name:查询指定包安装的脚本

rpm -qpi 如果某个RPM包尚未安装,我们需要查询其说明信息、安装以后会生成的文件


3、升级

rpm -Uvh 如果装有老版本则升级,否则安装

    -Fvh 如果装有老版本则升级,否则退出

    --oldpackage 降级


4、卸载

    -e

5、校验

    -V

6、检验来源合法性、软件完整性

加密类型:

    对称:加密解密使用同一密钥

    公钥:一对密钥,公钥,私钥;公钥隐含于私钥中并公开出去


Linux系统自带的公钥一般放在/etc/pki/rpm-gpg/下,后缀为release的就是公钥,没有这个公钥,那个后缀为系统名加版本号的就是公钥了。

    RPM-GPG-KEY-CentOS-5 

rpm -K 

    -nosignature 不检测合法性

    --nodigest 不检测完整性

    dsa,gpg:验证来源合法性,也即验证签名:--nosignature略过此项

    sha1,md5:验证软件包的完整性:--nodigest略过此项

7、重建数据库

    --rebuilddb 重建数据库:一定会重新建立

    --initdb 初始化数据库:没有才建立,有就不会建立