LINUX下的RPM应用

一 前言

在进入RPM的应用前,关于可执行程序的一些基本知识有必要说明一下:

1 ABI:application binary interface,这是应用程序与系统间的协议,大家都知道同一个程序在不同的操作系统平台可能会无法执行,很大程度上就是因为ABI的不同,因此,对于可执行程序,选择对应操作系统平台是第一步

2 API:application programming interface,这个概念很重要,如何理解呢?抛开那些复杂的概念的不说,程序的运行并不是孤立的,运行过程中需要调用能实现各种功能的库(函数)文件,否则无法保证程序的正常运行(有兴趣的朋友可以试试#rm -f  /lib64/libc.so.6),所以在程序安装前,得保证相应的库文件已准备完毕

3 软件结构:通常一个完善的二进制应用程序应该包括四个部分(二进制文件,库文件,配置文件,帮助文件 )


二  RPM应用场景

               在软件安装的工具选择中,RPM因为软件依赖性的存在使得很多软件的安装过于复杂,通常对于RPM包的安装选择YUM会比较简单粗暴(YUM会自动解决依赖性问题),在此不介绍RPM的安装。RPM工具的使用更多是在查询,校验,抽取文件等等方面

1. 查询: RPM的查询基于软件包的数据库/var/lib/rpm,这个数据库很重要,一旦遭到破坏会影响整个         RPM的管理;查询的相关命令如下:

    rpm    -q   pkgname(包名):查询RPM包是否被安装

              -qa  查询所有已安装的RPM包,结合grep可用来获取想要查询的信息;也可以使用rpm -qa                             “keyword”的形式查询某些关键字相关的结果

              -qf   /path/to/file    查询某文来源于哪个包

              -ql   pkgname       查询已安装包在系统中的文件列表

              -qpl  /path/to/file    查询未安装包的文件列表 

              -qc    pkgname      查询相关包配置文件

2. 校验:RPM提供校验功能,可查看文件是否被修改过,以保证系统安全(特别针对于被改过的可执行     文件);校验结果是比对当前包与RPM数据库(RPM数据库的重要性!)得出的结果 

         rpm     -V     pkgname    

    校验结果为SM5DLUGTP:被修改后显示对应字母(每个字母表示特定内容)被修改,无改动显示为点         号”.” 

3. 验证包来源合法性与完整性,验证前需要先导入公钥——安装系统时/etc/pki/rpm-gpg下会生成

    导入公钥:rpm    –import    /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

                 rpm     -K    /path/to/file    

4. 包内文件查看并提取:rpm2cpio -tv /path/to/rpmpkgs | cpio -id ./path/to/file
    PS:-tv为查看rpm包内的文件,路径必须为完整路径 -id为提取某文件,提取的文件路径必须完整

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

(2)
sevenyellowsevenyellow
上一篇 2017-04-17 22:51
下一篇 2017-04-18 08:46

相关推荐

  • 管理磁盘分区之fdisk详解

    Mozatr的不定期更新,处于学习阶段的Mozart,愿不断分享,不断进步。 此次分享一个重要的管理分区命令:fdisk ,我们一一阐述。 (一)分区 首先我们了解下什么是分区,分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁盘使用。分区表是一个硬盘分区的索引,分区的信息都会写进分区表。 分区的优点:  &nbsp…

    Linux干货 2017-08-19
  • haproxy负载均衡两个后端httpd和mysql

    前端主机:172.16.71.1,后端主机:172.16.71.4和172.16.71.5 前端主机安装haproxy yum install haproxyvim /etc/haproxy/haproxy.cfgglobal    log         127.0.0.1 local2 &nbs…

    Linux干货 2017-02-12
  • 设定Linux自动登陆

    设定Linux自动登陆 在实验场景中我们可能会经常重新启动Linux,然后反复输入账户密码登陆。为了在每次启动后快速进入系统减少在实验场景中不必要的工作,我们可以设定Linux在启动后自动登陆到指定账户(实验中一般为root账户)。基于Linux一切皆文件的思想,我们可以通过修改配置文本的方式决定是否启用自动登录,以及自动登录的账户是普通用户账户还是root…

    Linux干货 2017-07-15
  • Linux发行版及哲学思想

    Linux各发行版以及哲学思想 什么是Linux 为什么会有不同的Linux发行版 现有主流发行版,及其他们之间相互关系 Linux所遵循的哲学思想 什么是Linux Linux是一种自由和开放源代码的Unix-like操作系统,由当时就读于芬兰赫尔辛基大学的Linus Torvalds于1991年10月5日首次发布于互联网。Linux遵循第二版GNU通用公…

    Linux干货 2016-10-29
  • 马哥教育网络班22期第一周课程练习2-未闻花名

    语法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。 参数: -f 代表[变量名称]中为函数名称。 -n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。 -p…

    Linux干货 2016-08-15
  • 马哥教育网络班21期+第15周课程练习

    1、总结sed和awk的详细用法; sed的详细用法 awk的详细用法 2、删除/boot/grub/grub.conf文件中所有行的行首的空白字符; # sed 's/^[[:space:]]*//' /boot/grub/grub.conf 3、删除/etc/fstab文件中所有以#开头,后跟至少一个空白…

    Linux干货 2016-11-14

评论列表(1条)

  • renjin
    renjin 2017-04-21 09:46

    主要介绍了rpm命令常用的几个参数,内容总结的很好,建议插入一些示例和执行的结果,并将终端提示符类的命令或代码放入到”插入程序代码”中