RPM包管理功能全解。【第三周】

CentOS系统上rpm命令管理程序包: 安装、升级、卸载、查询、校验、数据库维护

rpm命令:rpm [OPTIONS] [PACKAGE_FILE]
    安装:-i, --install
    升级:-U, --update, -F, --freshen
    卸载:-e, --erase
    查询:-q, --query
    校验:-V, --verify
    数据库维护:-builddb, --initdb

安装:
    rpm {-i|--install} [install-options] PACKAGE_FILE ...

        rpm -ivh PACKAGE_FILE...

        GENERAL OPTIONS:
            -v:verbose, 详细信息
            -vv:更详细的输出

        [install-options]:
            -h:hash marks输出进度条;每个#表示2%的进度;
            --test:测试安装,检查并报告依赖关系及冲突消息等;
            --nodeps:忽略依赖关系;不建议;
            --replacepkgs:重新安装

            注意:rpm可以自带脚本;
                四类: --noscripts
                    preinstall:安装过程开始之前运行的脚本,%pre,--nopre
                    postinstall:安装过程完成之后运行的脚本,%post,--nopost
                    preuninstall:卸载过程真正开始执行之前运行的脚本,%preun,--nopreun
                    postuninstall:卸载过程完成之后运行的脚本,%postun,--nopostun

                --nosignature:不检查包签名信息,不检查来源合法性
                --nodigest:不检查包完整性信息;


升级:
    rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
    rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
        -U:升级或安装;
        -F:升级;

        rpm:-Uvh PACKAGE_FILE...
        rpm:-Fvh PACKAGE_FILE...

            --oldpackage:降级;
            --force:强制升级;

        注意:
            (1)不要对内核做升级操作;Linux支持多内核版本并存,因此,直接安装新版本内核即可;
            (2)如果某源程序包的配置文件安装后曾被修改过,升级时,新版本的程序包提供的同一个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供;

卸载:
    rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers][--test] PACKAGE_NAME ...

        --allmatches:卸载所有匹配指定名称的程序包的各版本;
        --nodeps:忽略依赖关系;
        --test:测试卸载

查询:
    rpm {-q|--query} [select-options] [query-options]

    [select-options]
        PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本;
        -a,--all:查询所有已经安装过的包;
        -f FILE:查询指定的文件 由哪个程序包安装生成;

        -p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作;

        --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供;
        --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖;

    [query-options]
        --changelog:查询rpm包的changlog;
        -l,--list:程序安装生成的所有文件列表;
        -i,--info:程序包相关的信息、版本号、大小、所属的包组,等
        -c,--configfiles:查询指定的程序包提供的配置文件;
        -d, --docfiles:查询指定的程序包提供的文档;
        --provides:列出指定的程序包提供的所有的CAPABILITY;
        --whatprovides:可以用来查询哪个包提供了指定内容
        --whatrequires:可以用来查看哪些包依赖于指定内容
        -R, --requires:查询指定的程序包的依赖关系;
        --scripts:查看程序包自带的脚本片断;

    用法:
        -qi PACKAGE, -qf FILE, -qc PACEAGE, -ql PACKAGE, -qd PACKAGE
        -qpi PACKAGE_FILE, -qpl PACKAGE_FILE, -qpc PACKAGE_FILE,...

校验:
    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

包来源合法性验证和完整性验证: 来源合法性验证: 完整性验证:

获取并导入信息的包制作者的密钥:
    对于CentOS发行版来说:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

验证:
    (1)安装此组织签名的程序时,会自动执行验证;
    (2)手动验证:rpm -k PACKAGE_FILE

数据库重建: rpm管理器数据库路径:/var/lib/rpm/ 查询操作:通过此处的数据库进行;

获取帮助:
    CentOS 6:man rpm
    CentOS 7:man rpmdb

    rpm{--initdb|--rebuilddb}
        --initdb:初始化数据库,当前无任何数据库可实始化创建一个新的;当前有时不执行任何操作;
        --rebuilddb:

原创文章,作者:N24_xiaowen,如若转载,请注明出处:http://www.178linux.com/60782

(0)
上一篇 2016-11-26 11:54
下一篇 2016-11-26 15:07

相关推荐

  • Linux 终端类型

      1、 什么是终端     终端就是用户与主机进行交互的一种介质(方式),可以是虚拟的,也可以是实体的。   2、 终端种类       (1)控制台终端(/dev/console):在Linux系统中,计算机显示器通常被称为控制台终端。Console与虚拟终端相关联…

    Linux干货 2016-10-19
  • Python 数据结构

    python 内置数据结构python 内置数据结构数字的处理函数: round() 五舍六入       2.5  2     2.6    3 floor() 向下取整       2.5  2     2.6    2 ceil() 向上取整       2.5  3     2.6    3 min() 取最小的       1,2,3      1…

    Linux干货 2017-09-23
  • 话说CentOS6的启动流程

    1.按下开机按钮,电脑的主板通电,电脑开始加电自检(POST,Power On and Self Test),测试主机的硬件是否满足开机的要求. 2.加载主板上的BIOS(Base Input/Output System,基本输入输出系统),BIOS会加载用户设定的第一个可开机设备.,这里我们只说硬盘的加载. 可以按下键盘上的Esc或者是F2或者是Del键,…

    Linux干货 2017-05-14
  • N23_第1周博客作业

    1、描述计算机的组成及其功能。     根据冯·诺依曼体系计算机有中央处理器、主存储器、输入/输出三个子系统组成。 1.中央处理器 CPU(Central Processing Unit)用于数据运算。CPU有控制单元、算数逻辑单元、寄存器组组成。 (1)控制单元:控制各个子系统操作 (2)算数逻辑单元:对数据进行逻辑、移位和算数运算 逻…

    Linux干货 2016-09-19
  • N28-第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
    2、取出最后登录到当前系统的用户的相关信息。
    3、取出当前系统上被用户当作其默认shell的最多的那个shell。
    4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
    5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
    6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
    7、显示/var目录下一级子目录或文件的总个数。
    8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
    9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
    10、请总结描述用户和组管理类命令的使用方法并完成以下练习:
    (1)、创建组distro,其GID为2016;
    (2)、创建用户mandriva, 其ID号为1005;基本组为distro;
    (3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
    (4)、给用户mageia添加密码,密码为mageedu;
    (5)、删除mandriva,但保留其家目录;
    (6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
    (7)、修改slackware的默认shell为/bin/tcsh;
    (8)、为用户slackware新增附加组admins;

    2017-12-17
  • 学习shell scripts

    1. 为什么要学习shell编程?          许多人会问,为什么要学习shell脚本编程?我学的是linux,又不是编程,其实对于个人用户可能用处不是很大,但是当你在为公司的成千上完的服务器做维护时,可能没有shell编程的话可能把人累死也无法完成任务,一千台服务器要做相…

    Linux干货 2016-08-18

评论列表(1条)

  • luoweiro
    luoweiro 2016-11-30 22:34

    知识点总结的不错,第三周的作业好像没有完善。