程序:指令+数据
    指令:芯片
        CPU: 普通指令,特权指令
        指令集
        
C语言:
    Powerpc: 二进制格式

    x86:


x86: 汇编
powerpc: 汇编

高级语言:
C:

软件包管理器的核心功能:
1、制作软件包;
2、安装、卸载、升级、查询、校验;

Redhat, SUSE, Debian

Redhat, SUSE: RPM
    Redhat Package Manager
    PRM is Package Manager
Debian: dpt

依赖关系:
    X-->Y-->Z
    
    X-->Y-->Z
    
前端工具:yum, apt-get
后端工具:RPM, dpt

yum: Yellowdog Update Modifier
    yum


rpm命令:
    rpm:
        数据库:/var/lib/rpm
    rpmbuild:
    
安装、查询、卸载、升级、校验、数据库的重建、验正数据包等工作;

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,调整了一点功能

bind-9.7.1.tar.gz    

rpm包:
    二进制格式
        rpm包作者下载源程序,编译配置完成后,制作成rpm包
        bind-9.7.1-1.noarch.rpm
        bind-9.7.1-1.ppc.rpm

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: 导入密钥文件

posted on 2016-08-23 23:40  浮沉一梦  阅读(362)  评论(0编辑  收藏  举报