• 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:重建数据库;
                            无论当前是否存在,直接重新创建数据库;
                    

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

  • 相关阅读:
    C#单例模式的实现再回顾
    智慧质证使用过程中的4个接口
    Amortized Analysis 均摊分析
    668. Kth Smallest Number in Multiplication Table
    1201. Ugly Number III
    1482. Minimum Number of Days to Make m Bouquets
    744. Find Smallest Letter Greater Than Target
    436. Find Right Interval
    50. Pow(x, n)
    29. Divide Two Integers
  • 原文地址:https://www.cnblogs.com/guowei-Linux/p/9787333.html
Copyright © 2020-2023  润新知