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

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

猜你喜欢

转载自blog.csdn.net/qq_32501535/article/details/82924047