在Linux系统上,一般而言,对于程序包管理器来说分为三类:

  debian:dpt,dpkg;             (程序包后缀.deb)

  rhel:rpm         (程序包后缀.rpm)

  suse:rpm         (程序包后缀.rpm)

那么,程序包管理器该怎么理解呢?

  程序包管理器:将编译好的应用程序的各组成文件打包成一个或几个程序包文件,从而更方便的实现程序包的安装、卸载、升级、查询、校验等管理操作。

  对于Centos系列来讲,rpm数据库的路径是:/var/lib/rpm

rpm包命名格式:

  

name-version-release.arch.rpm

//name:软件的名称
//version:软件的版本
//release:发行商版本
//arch:系统架构

  如:heartbeat-2.1.4-12.el6.x86_64.rpm

接下来,详细介绍rpm命令的相关使用:

  rpm [OPTIONS] [PACKAGE_FILE]

  其主要选项有:

    -i,--install:安装

    -e,--erase:卸载

    -U,--upgrade:升级

    -q,--query:查询

    -V,--verify:校验

    --buliddb,--initdb:数据库维护

    -v:显示安装详情

    -vv:显示更为详细的信息


    ①安装相关:

    rpm [OPTIONS] [INSTALL-OPTIONS] [PACKAGE_FILE]

    其中,[INSTALL-OPTIONS](安装选项)有:

      -h:显示安装进度条(50个#);

      --test:测试安装;

      --nodeps:忽略程序包依赖关系(不建议使用);

      --replacepkgs:重新安装;

      --nosignature:不检查程序包签名信息;

      --nodigest:不检查程序包完整性信息;

    ②升级相关:

    rpm [OPTIONS] [UPGRADE-OPTIONS] [PACKAGE_FILE]

    rpm [OPTIONS] [FRESHEN-OPTIONS] [PACKAGE_FILE]

    其中,常用选项有:

      -U:升级并安装;

      -F:仅进行升级;

      --oldpackage:降级

      --force:强制升级

   ③卸载相关:

    rpm [OPTIONS] [ERASE-OPTIONS] [PACKAGE_FILE]

    其中,常用选项有:

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

   ④查询相关:

    rpm [OPTIONS] [SELECT-OPTIONS] [QUERY-OPTIONS]

    其中:[SELECT-OPTIONS]有:

      PAKAGE_NAME:查询指定软件是否已经安装即其版本(此处是packagename,不是packagefile)

      -a,--all:查询所有已安装的程序包;

      -f FILE:查询指定文件是由哪个程序包安装生成的,例如:

[root@myadmin ~]# rpm -q -f /etc/passwd
setup-2.8.14-20.el6_4.1.noarch

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

      --whatprovides CAPBILITY:查询指定的能力是由哪个程序包提供的,如:

[root@myadmin ~]# rpm -q --whatprovides zsh
zsh-4.3.11-4.el6.centos.2.x86_64

      --whatrequires CAPBILITY:查询指定的能力是被哪个程序包所依赖,如:

[root@myadmin ~]# rpm -q --whatrequires bash
initscripts-9.03.-.el6.centos.x86_64
dracut--.el6.noarch
rsyslog-5.8.-.el6_6.x86_64
cronie-1.4.-.el6_7..x86_64
autofs-5.0.-.el6.x86_64
lvm2-2.02.-.el6.x86_64

    [QUERY-OPTIONS]有:

      --changelog:查询rpm包的changelog;

      -l,--list:程序安装生成的所有文件列表,如:

[root@myadmin ~]# rpm -ql python
/usr/bin/pydoc
/usr/bin/python
/usr/bin/python2
/usr/bin/python2.
/usr/share/doc/python-2.6.
/usr/share/doc/python-2.6./LICENSE
/usr/share/doc/python-2.6./README
/usr/share/man/man1/python..gz

      -i,--info:程序包的相关信息【版本号、大小、所属包组等】

      -c,--configfiles:查询指定的程序包所提供的配置文件,如:

[root@myadmin ~]# rpm -qc zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv

     -d,--docfiles:查询指定的程序包所提供的文档,如:

[root@myadmin ~]# rpm -qd python
/usr/share/doc/python-2.6./LICENSE
/usr/share/doc/python-2.6./README
/usr/share/man/man1/python..gz

     --provides:列出指定程序包所提供的所有功能,如:

[root@myadmin ~]# rpm -q --provides python
Distutils
python(abi) = 2.6
python-abi = 2.6
python-ctypes = 1.0.
python-hashlib =
python-sqlite = 2.3.
python-uuid = 1.31
python-x86_64 = 2.6.-.el6
python2 = 2.6.
python = 2.6.-.el6
python(x86-) = 2.6.-.el6

    -R,--requires:查询指定程序包的依赖关系,如:    

[root@myadmin ~]# rpm -qR python
/usr/bin/python2.
libc.so.()(64bit)
libc.so.(GLIBC_2.2.5)(64bit)
libdl.so.()(64bit)
libm.so.()(64bit)
libpthread.so.()(64bit)
libpython2..so.1.0()(64bit)
libutil.so.()(64bit)
python-libs(x86-) = 2.6.-.el6
rpmlib(CompressedFileNames) <= 3.0.-
rpmlib(FileDigests) <= 4.6.-
rpmlib(PartialHardlinkSets) <= 4.0.-
rpmlib(PayloadFilesHavePrefix) <= 4.0-
rpmlib(VersionedDependencies) <= 3.0.-
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-

   --scripts:查看程序包自带的脚本片段;

  ④校验相关

    rpm [OPTIONS] [SELECT-OPTIONS] [VERIFY-OPTIONS]

    与上面的类似,在此不再赘述。

  ⑤数据库相关

    rpm {--initdb|--rebuilddb}

    其中:  

      --initdb:初始化数据库,当前无任何数据库可初始化创建一个新的;当前有时不执行任何操作;
      --rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进行重新构建;


  rpm包的验证相关:

    首先要获取并导入程序包制作者的密钥:      

      对于CentOS发行版来说:
        rpm --import /etc/pki/rpm-gpg/******

      例如:  

[root@myadmin ~]# ls -l /etc/pki/rpm-gpg/
总用量
-rw-r--r--. root root 5月 : RPM-GPG-KEY-CentOS-
-rw-r--r--. root root 5月 : RPM-GPG-KEY-CentOS-Debug-
-rw-r--r--. root root 5月 : RPM-GPG-KEY-CentOS-Security-
-rw-r--r--. root root 5月 : RPM-GPG-KEY-CentOS-Testing-

    手动验证:

      rpm -K PACKAGE_FILE

    例如:  

[root@myadmin ~]# rpm -K zsh-4.3.-.el6.centos..x86_64.rpm
zsh-4.3.-.el6.centos..x86_64.rpm: rsa sha1 (md5) pgp md5 OK

Linux程序包管理初步-rpm的使用的更多相关文章

  1. Linux程序包管理之rpm

    rpm简介 rpm( Red Hat Package Manager )是一个开放的软件包管理系统.它工作于Red Hat Linux及其他Linux系统,成为Linux中公认的软件包管理标准. rp ...

  2. 【程序包管理】Linux程序包管理之rpm安装总结

    rpm简介 rpm( Red Hat Package Manager )是一个开放的软件包管理系统.它工作于Red Hat Linux及其他Linux系统,成为Linux中公认的软件包管理标准. rp ...

  3. Linux程序包管理初步-yum的使用

    何为yum? yum:由yellow dog研发,全称Yellowdog Update Modifier 是rhel系列系统上rpm包管理器的前端工具,可用来自动解决依赖关系,从而更好的实现程序包的安 ...

  4. Linux程序包管理rpm与yum

    Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个l ...

  5. Linux程序包管理之yum及源代码安装

    第十六章.Linux程序包管理之yum及源代码安装 目录 yum介绍 yum配置文件 yum的repo配置文件中可用的变量 yum命令的使用 使用光盘作为本地yum仓库 如何创建yum仓库 编译安装的 ...

  6. Linux下程序包管理工具RPM

    实验环境: CentOS release 6.6 (Final)  一台 IP地址:172.16.249.230 RPM 是 Red Hat Package Manager 的缩写,本意是Red Ha ...

  7. Linux 程序包管理-RPM

    程序简介:  POSIX(Portable Openratin System)跨平台系统:不同操作系统平台的标准C库(glibc)都是遵循POSIX规范的,这样基于标准库开发程序的源代码可以夸平台编译 ...

  8. 十六、程序包管理之 rpm

    c语言程序的构建过程 1.程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接--> 可执行程序 开放源码:就是程序码,文本格式的源代码,写给人类看的程序 ...

  9. Linux 程序包管理-YUM

    前端工具YUM管理程序包:  rpm管理软件虽然方便,但是需要手工解决软件包的依赖关系:很多时候安装一个软件需要首先安装一个或多个(有时多达上百个)其它软件,手工解决很复杂:使用yum可以解决这个问题 ...

随机推荐

  1. nginx源码分析-源码结构

    本文主要简单介绍nginx源码目录结构.程序编译流程.如何构建学习nginx的环境等.本文以及后续nginx源码分析文章是基于nginx当前(2009-02-27)的稳定版本0.6.35进行的分析,该 ...

  2. 【默默努力】fishingGame

    这个捕鱼游戏挺有意思的,通过发射子弹,打鱼.打鱼的子弹会消耗金币,但是打鱼如果打到了鱼,就会奖励金币的数量. 我如果写这个的话,应该会画一个 背景海底,然后生成很多鱼的图片,还要有一个大炮,金币.大炮 ...

  3. 如何将存储在MongoDB数据库中的数据导出到Excel中?

    将MongoDB数据库中的数据导出到Excel中,只需以下几个步骤: (1)首先,打开MongoDB安装目录下的bin文件夹,(C:\Program Files (x86)\MongoDB\Serve ...

  4. [转]Java多线程

    一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识点.掌握了上图中的各知识点,Java中的多线程也就基本上掌 ...

  5. Python-数据类型内置方法(2)

    目录 元组(tuple) 内置方法: 字典(dict) 内置方法: 优先掌握: 需要掌握 集合(set) 优先掌握 深浅拷贝 拷贝(赋值) 浅拷贝 深拷贝 总结 存值个数 有序 or 无序 可变 or ...

  6. 二分+2-sat——hdu3062

    hdu3622升级版 注意要保留两位小数 /* 给定n对圆心(x,y),要求从每对里找到一个点画圆,不可相交 使得最小半径最大 二分答案,设最小半径为r 然后两两配对一次进行判断,在2-sat上连边即 ...

  7. 洛谷P3376【模板】网络最大流 ISAP

    这篇博客写得非常好呀. 传送门 于是我是DCOI这一届第一个网络流写ISAP的人了,之后不用再被YKK她们嘲笑我用Dinic了!就是这样! 感觉ISAP是会比Dinic快,只分一次层,然后不能增广了再 ...

  8. Office宏的基本利用

    前言 Office宏,译自英文单词Macro.宏是Office自带的一种高级脚本特性,通过VBA代码,可以在Office中去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中的一些任务自动 ...

  9. Android之RelativeLayout相对布局

    1.相关术语解释 1.基本属性 gravity :设置容器内组件的对齐方式 ignoreGravity : 设置该属性为true的组件,将不受gravity属性的影响 2.根据父容器定位 layout ...

  10. centos 以太坊多节点私链搭建

    环境  centos 7   搭建 3 个节点的 私链. 第一步 安装 一些依赖的 工具 yum update -y && yum install git wget bzip2 vim ...