zoukankan      html  css  js  c++  java
  • 软件包管理器的核心功能(笔记)

    程序:指令+数据
        指令:芯片
            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: 导入密钥文件

  • 相关阅读:
    模糊化控制
    第8章 控制对象的访问(setter、getter、proxy)
    第7章 面向对象与原型
    Termux键盘配置
    在md里画流程图
    设置浏览器不缓存文件
    安卓手机使用Termux及搭建FTP服务器
    第6章 未来的函数:生成器和promise
    第5章 精通函数:闭包和作用域
    第4章 函数进阶:理解函数调用
  • 原文地址:https://www.cnblogs.com/jjzd/p/5801279.html
Copyright © 2011-2022 走看看