zoukankan      html  css  js  c++  java
  • Linux rpm命令

    Centos 7 系统上用rpm命令管理程序包
        安装、升级、卸载、查询、校验、数据库维护;
            安装:
                rpm {-i|--install} [install-options] PACKAGE_FILE …
                    -i:安装;
                    -v:显示详细信息;
                    -vv:你懂的;
                    -h:hash,就是以#显示安装进度,每个#表示2%的进度;
                        [install-options]:
                            --test:安装测试,不是真的安装;
                            --nodeps:忽略依赖关系安装;
                            --noscripts:安装时不运行rpm包自带的脚本;
                                --nopre:不运行安装前脚本;
                                --nopost:不运行安装后脚本;
                                --nopreun:不运行卸载前脚本;
                                --nopostun:不运行卸载后脚本;
                            --nodigest:安装时不检测完整性;
                            --nosignature:安装时不检测来源合法性;
                            --replacepkgs:重新安装;
            升级:
                rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
                rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
                    upgrade:安装时系统上已经安装了旧版本程序包,则做升级操作;如果没有则进行安装操作;
                    freshen:只在原有程序上进行升级操作;
                    --oldpackage:版本降级安装;
                    --force:强行安装;
                    Note:
                        linux 内核从4.0以后可以不用重启系统,之前的都不可以;所以为了防止升级不成功导致无法开机,linux支持多内核共存,直接安装新内核即可;
                        如果原程序包的配置文件在安装后有过修改,则升级时,新版本提供的同一个配置文件不会直接覆盖原来的配置文件,而是把新版本的重命名(FILENAME.rpmnew)后保留; 如果新旧相同则新版本的不会安装,依旧使用旧版本的配置文件;
            查询:
                rpm {-q|--query} [select-options] [query-options]
                    [select-options]:
                        -a:查看所有包;
                        -f:查看指定文件是由哪个程序包安装生成的;
                        -q /patch/to/package_file:针对尚未安装的程序包文件做查询操作;
                        --whatprovides CAPABILITY:查询指定的CAPABILITY是由哪个程序包提供的;
                        --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个程序包所依赖;
                    [query-options]:
                        --changelog:查询rpm包的changelog;
                        -c:查询程序包的配置文件;
                        -d:查询程序包安装后所生成的文档;
                        -i:查询程序包的信息;
                        -l:查询指定的程序包安装后所生成的所有文件;
                        --scripts:查询程序包自带的脚本片段;
                        -R:查询指定的程序包所依赖的CAPABILITY;
                        --provides:列出指定程序包提供的CAPABILITY;
                    常用用法:
                        -qi PACHAGE ;-qf FILE;-qc PACKAGE;-ql PACKAGE;-qd PACKAGE;
                        -qpi PACKAGE_FILE;-qpl PACKAGE_FILE ;
                        -qa;
            卸载:
                rpm {-e|--erase} [--allmatches] [--justdb] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
            校验:通过校验可以查询出来某个安装后的文件是否被修改过;
                rpm {-V|--verify} [select-options] [verify-options]
                    改变提示信息各个符号所代表的意思:       
                        S file Size differs:大小改变;
                           M Mode differs (includes permissions and file type):权限改变;
                           5 digest (formerly MD5 sum) differs:完整性改变;
                           D Device major/minor number mismatch:设备文件主次设备号改变;
                           L readLink(2) path mismatch:路径不匹配;
                           U User ownership differs:属主改变;
                           G Group ownership differs:属组改变;
                           T mTime differs:时间改变;
                           P caPabilities differ:功能改变;
            包来源合法性验证及完整性验证:
                过程简介:
                    rpm包制作完成后,会将rpm包用sha256或md5等单项加密算法计算出rpm程序包的摘要信息,然后用自己的私钥再加密计算出来的摘要信息,最后打包完成;用户可以通过使用制作者提供的公钥来解密摘要信息,然后跟自己用相同单项加密算法计算出来的摘要相对比,相同则说明来源合法并且数据包完整;公钥可以在权威的秘钥签发机构CA获得,但是一般不会有人为了rpm包而去注册一个CA证书,因为他是需要费用的,所以建议去官网这种比较权威的机构去寻找rpm程序包来下载安装;
                加密方法:
                    对称加密:加密、解密使用同一秘钥;
                    非对称加密:秘钥时成对儿 的,公私不同;
                        public key:公钥,公开的;
                        secret key:私钥,私有的;
                完整性验证:SHA256
                来源合法性验证:RSA(非对称加密)
                验证步骤:
                    倒入公钥:rpm --import /path/to/GPG-PUBKEY-FILE
                        centos 7 :/mnt/cdrom/RPM-GPG-KEY-CentOS-7
                            /mnt/cdrom:为安装光盘挂载点;
                    rpm -K /path/to/PACKAGES:直接检验rpm包的完整性,无需安装;
                rpm数据库:
                    所在位置:/var/lib/rpm
                重建数据库:
                    rpm [--initdb|--rebuilddb]  或者rpmdb [--initdb|--rebuilddb]  
                        initdb:初始化;
                            如果实现不存在则新建数据库,否则不进行任何操作;
                        rebuilddb:重建数据库;
                            无论当前是否存在,直接重新创建数据库;
                    

    注:根据马哥视频做的学习笔记,如有错误,欢迎指正;侵删

  • 相关阅读:
    上传文件
    vue 动态数据请求
    Layui——layerjs 用法汇总(持续更新)
    以插入排序为例子带你彻底理解算法中的时间复杂度和各种渐进符号
    flappy pig小游戏源码分析(4)——核心pig模块(未完待续)
    flappy pig小游戏源码分析(3)——解剖util
    flappy pig小游戏源码分析(2)——解剖option
    flappy pig小游戏源码分析(1)——主程序初探
    Express细节探究(1)——app.use(express.static)
    部分常用Express方法详解
  • 原文地址:https://www.cnblogs.com/guowei-Linux/p/9787333.html
Copyright © 2011-2022 走看看