文档章节

RPM使用简介

彭博
 彭博
发布于 2012/03/09 16:32
字数 1647
阅读 41
收藏 0

如转载,请注明出处:http://blog.csdn.net/robinson_0612/archive/2009/10/08/4699969.aspx

 

       RPM全名是RedHat Package Manager,简称为RPM,又称之为RPM软件包管理器,使RedHat套件管理程序之一,类似于Windows控制面板中的添加删除模块,Windows添加删除程序通过将安装信息记录在注册表,以便于程序的更新,卸载。而RPM同样有着类似的功能,用于linux下套件包的安装与管理。

      一、RPM与SRPM简介及功能

      1. RPM:RPM通过采用数据库记录的方式来将所需要的套件安装到Linux系统中。RPM包的格式为*.rpm,RPM包为已经经过编译且包装完成的rpm文件,这是其最大的特点。与我们通用的软件安装类似,在安装所需的套件之前,先根据套件中提供的安装参数检查该套件安装所需的环境,如果系统的环境与套件中所要求的环境相一致(软件包打包时的环境),则可以成功安装,否则会提示报错,或提示其安装依赖属性模块,需预先安装某某套件才可以再安装该套件。成功安装套件后,RPM套件管理器会将所安装的套件包记录到RPM数据库中,以便后续的查询、验证、升级、卸载等。

    

     2. SRPM:与RPM最大的特点相对应,SRPM就是包含了Source code的RPM,即SRPM提供的内容为源码,当然也就没有经过编译。 同时SRPM也提供了参数配置文件(configure与makefile)。想必大家已经知道,它与RPM最大的差异是,在安装套件时需要通过RPM管理器将要安装的套件以RPM管理的方式进行编译,根据系统环境修改参数配置文件,然后将编译好的RPM安装到Linux系统中。由此可以看出SRPM在编译时修改了参数配置文件,无需与当时打包的环境一致,从而降低了对套件包所需的安装环境。

     二、RPM,SRPM包的格式及其说明

     1.RMP与SRPM的格式通常为:

           *.rpm         如:compat-db-4.1.25-9.i386.rpm

            *.src.rpm   如:compat-db-4.1.25-9.i386.src.rpm

        按以上简介可知,compat-db-4.1.25-9.i386.rpm为已经经过编译的文件,compat-db-4.1.25-9.i386.src.rpm则为没有经过编译的文件,通常套件在发行之前,同时提供rpm及srpm文件。

    2. 关于文件中i386,i686的说明:

        i386指这个软件包适用于intel 80386以上的所有x86平台的计算机。
        i686指这个软件包适用于intel 80686以上,即Pentinum II以后Intel 系列的x86平台的计算机,K7以后等级的CPU。
        noarch指这个软件包与硬件架构无关,可以通用。

    3. 套件的文件名及版本:

        如上述compat-db-4.1.25-9说明该套件的名称为compat-db,4.1.25-9为版本信息及发布次数。

 

    三、RPM的查询功能

     1. 格式:[root@localhost ~]# rpm -parameter package_name

         rpm的查询路径: /var/lib/rpm目录下的数据库文件。

         parameter说明:

         -q  : 列出package_name是否已安装到系统中。

         -qa:查询系统中安装的所有的包。

         -ql :查询package_name中所有文件的安装路径。

         -qi :列出package_name中的详细信息,包括开发商,版本,说明等。

         -V  :若package_name被修改过,则将其列出。

     2. 以下我们以在RHEL5.4下安装oracle 10g为例,通过查询所需的软件包来介绍rpm的查询功能。

         Sample 1 :查询某套件是否已安装,如要查询binutils-2.15.92.0.2-13.EL4是否已安装,如下:

         [root@localhost ~]# rpm  -q binutils

         binutils-2.17.50.0.6-12.e15                --表明包binutils 已被成功安装,且列出的版本号高于所要查询的版本。

         [root@localhost ~]# rpm  -q compat-db

         package compat-db is not installed    --表明包compat-db没有被安装到系统中

       

         Sample 2 :查询binutils-2.15.92.0.2-13.EL4的详细信息:

         [root@localhost ~]# rpm  -qi binutils        --结果省略

      

         Sapmle 3 :查询binutils-2.15.92.0.2-13.EL4的所有目录与文件:

         [root@localhost ~]# rpm  -ql binutils       --结果省略

 

    四、RPM的安装卸载功能

         通过RPM查询功能我们可以得到某些软件包是否已安装到系统中以及列出其路径,详细信息等。对于那些没有安装到系统中,且由于相关程序的依赖性,需要将其安装的系统中,我们同样可以通过RPM来完成,格式同上所述,仅仅是给RPM不同的参数而已。当然也可以对其已安装的软件包进行升级或卸载。

     1. 安装软件包。同RPM查询功能中介绍的格式一样,仅仅将parameter改为 ivh 即可。ivh通常组合在一起使用,也可以分开使用。i代表install的意思,v则表示显示更详细的安装信息,h表示显示安装进度。因此本人更倾向于同时使用上述三个参数。

     Sample 1 :安装我们前一节所述的不存在的compat-db包

     [root@localhost ~]# rpm  -ivh compat-db-4.1.25-9    

     这里将安装结果图截屏供大家参考:

     image

      可以到Google搜索该软件包,也可以到以下网址下载:http://linuxsoft.cern.ch/cern/slc4X/i386/yum/os/repodata/repoview/compat-db-0-4.1.25-9.html

      当然也可以通过网址来安装该软件包,前提是你的Linux系统能正常连接到Internet。

      如:[root@localhost ~]# rpm  -ivh http://linuxsoft.cern.ch/cern/slc4X/i386/yum/os/compat-db-4.1.25-9.i386.rpm

    

     Sample 2: 同时安装多个软件包,只要在参数ivh后面跟多个软件包即可,请确保路径可以正确找到所需的软件包。

     [root@localhost ~]# rpm  -ivh compat-db-4.1.25-9 compat-libstdc++-296-2.96-132.7.2

    

    2. 更新与卸载软件包

        此处包括更新软件包和卸载软件包,下面分开叙述。

        更新软件包的情况,以下仅提供参数说明,命令格式规范同前所述:

        参数:-Fvh,对于已安装的旧版软件包,系统自动更新,对于没有安装后的后续软件包系统则不会更新。

                 -Uvh,对于已安装的旧版软件包,系统自动更新,对于没有安装后的后续软件包系统直接安装。

       卸载软件包的情况,以下仅提供参数说明,命令格式规范同前所述:

       参数:-e 卸载package_name中指定的软件包。

       注:关于SRPM的使用涉及到编译的过程,在此不作叙述。


原文链接: http://blog.csdn.net/robinson_0612/article/details/4699969

本文转载自:http://blog.csdn.net/robinson_0612/article/details/4699969

共有 人打赏支持
彭博

彭博

粉丝 393
博文 1071
码字总数 6801
作品 2
深圳
程序员
私信 提问
加载中

评论(1)

o
oay
RPM的使用还是相对来说比较简单的。但是也有一些比较高级的用法,如果真正要利用RPM进行开发之类的,我推荐看一下Maximum RPM,这本书没有中文版,不过看到一个中文版的读书纪要(http://www.jsxubar.info/maximum-rpm-introduction.html),也推荐一下,非常不错的。
Python(一)安装Python、iPython、Pycharm

系统环境: Operating System: Red Hat Enterprise Linux Server 7.0 Kernel: Linux 3.10.0-123.el7.x86_64 一、安装Python 1.简介 linux操作系统上一般iso镜像里面自带,或者访问官网下载:...

vaon
2017/12/25
0
0
centos7 常用命令

专业软件定制开发:济南恒软信息技术有限公司(http://www.heng-soft.com) 1.rpm命令 2.yum命令 主要功能更方便添加、删除、更新rpm包,自动解决依赖性问题,便于管理大量系统的更新问题 同时...

glen_xu
2018/01/23
1
0
QConf在Centos下安装与配置

一、QConf简介 QConf 是奇虎 360 内部分布式配置管理工具。用来替代传统的配置文件,使得配置信息和程序代码分离,同时配置变化能够实时同步到客户端,而且保证用户高效读取配置,这使的工程...

江边望海
2016/11/15
93
0
Linux学习笔记(六)——应用程序安装

                  安装及管理应用程序   同windows操作系统一样,使用一个操作系统,肯定要安装一些软件,这篇随笔主要介绍Linux上软件的安装。首先我们应该了解Linux...

zhoujie0111
2013/03/23
0
0
《Linux应用大全 基础与管理》一书,讲述日常系统管理内容

《Linux应用大全 基础与管理》介绍了Linux基础与管理等方面的知识,主要内容包括Linux的安装,使用Linux图形界面,Linux应用程序,使用Linux字符界面,Linux文本编辑器,目录和文件管理,Lin...

airfish2000
2015/12/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

4.57 MariaDB慢查询日志 4.58 Tomcat_JDK部署 4.59 zrlog安装 4.60 Nginx代理Tomcat

4.57 MariaDB慢查询日志 为什么要配置慢查询日志? 目的是为了帮助我们分析MariaDB的瓶颈点。 如何配置? 1)进入MariaDB里面执行:show variables like 'slow%';show variables li...

Champin
今天
3
0
自动机器学习简述(AutoML)

为什么需要自动机器学习 对于机器学习的新用户而言,使用机器学习算法的一个主要的障碍就是算法的性能受许多的设计决策影响。随着深度学习的流行,工程师需要选择相应的神经网络架构,训练过...

naughty
今天
2
0
Android Studio Unable to resolve dependency for错误的排查

记录一次Android Studio Unable to resolve dependency for错误的排查 Android Studio 3.2.1 错误提示 Unable to resolve dependency for... 原因:在gradle中设置的代理并没有gradle 4.6的版......

Gemini-Lin
今天
0
0
java常用设计模式

设计模式; 一个程序员对设计模式的理解: “不懂”为什么要把很简单的东西搞得那么复杂。后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“...

呵呵哒灬
今天
5
0
Kafka入门

1、Kafka使用背景 在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词...

watermelon11
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部