RPM的命名规则及其用法

在Linux平台上,众所周知的,我们安装软件包,无外乎两种:一种是以RPM的方式直接安装,这是一种已经编译完成的安装包;另外一种就是源代码安装,这是一种将压缩包解压后,根据自己的环境,加以定制的安装的方式。RPM安装相比源代码安装,更加的方便、快捷,而源代码能根据自己的环境,编译,得到自己想要的功能,这里,我们只介绍RPM包的相关情况:

RPM:RPM is Package Manager,原名并不是这个,但是,现在的RPM已经成为整个Linux界公认的行业标准了。凡事有一定的规范性,对于RPM,它的命名也是有法可寻。

1、RPM的命名格式:name-version-release.arch.rpm

name:这里指的是对应软件的名称,比如httpd,我们的apache服务

version:这里的版本主要指的是对应的源代码的版本号

release:这个是这个RPM的修订的次数,发布版本,与源代码的版本号无关

arch:这个是它所支持的硬件平台,有x86_64,i386,ppc,noarch等

这其中的version有三部分组成:主版本号、次版本号、发布版本号

例子:httpd-2.2.15-29.el6.centos.x86_64.rpm

上面,我们以httpd服务为例,它的name就是httpd,version为2.2.15,release为29.e16,这里,还包含了此包使用的系统,即centos,arch就是x86_64。

这么解释的话,不知道大家有没有一个具体的概念了?

2、RPM的打包功能及其分包机制:

核心包,即主包,它的命名与源程序一样(不是源代码啊)

例子:php-5.3.3-26.el6.x86_64.rpm,上面提到的httpd也是核心包

子包:它在name的后面有个子包名

例子:php-mysql-5.3.3-26.el6.x86_64.rpm,这里的mysql就是子包名

3、RPM包管理器的常见使用环境:

a、安装程序包:rpm [option] package_path

-i:安装,即install

-v:显示详细信息,这里也可以使用-vv和-vvv,信息更加详细

-h:使用"#"来显示安装的进度

       rpm -ivh httpd-2.2.15-29.el6.centos.x86_64.rpm

配合上面-ivh使用的选项:

--test:这里仅做测试,并不是实际去执行安装

       rpm -ivh --test httpd-2.2.15-29.el6.centos.x86_64.rpm

--nodeps:这里是在有依赖包的时候,你不想将依赖包安上,但是,这样做的话,

会造成包可能无法运行,下面这种情况就是需要依赖包:

       rpm -ivh  --nodeps php-pecl-apc-3.1.9-2.el6.x86_64.rpm

--replapacpkgs:看选项,我们就知道,这是重新安装替换,但是,配置文件不会被重新安装

       rpm -ivh --replacepkgs httpd-2.2.15-29.el6.centos.x86_64.rpm

b、卸载程序包:

rpm [option] package_name

-e:卸载选项,意思为erase,擦除

--nodeps,卸载时,忽略它所依赖的包,只卸载当前包

       rpm -e httpd --nodeps

c、升级版本程序包:

I、升级或安装

rpm  -Uvh package_path

         rpm -Uvh httpd-2.2.15-29.el6.centos.x86_64.rpm

II、纯升级

rpm  -Fvh package_path

         rpm -Fvh httpd-2.2.15-29.el6.centos.x86_64.rpm

III、强制升级

rpm  --force package_path

         rpm -force httpd-2.2.15-29.el6.centos.x86_64.rpm

d、查询操作:

已安装的包:

I、查询某个包是否安装

rpm -q package_name

        rpm -q httpd

II、查询所有已经安装的包

rpm -qa

后面可以跟grep的正则表达式

        rpm -qa | grep ‘^http‘

III、查询已安装的包描述信息

rpm -qi package_name

        rpm -qi php  #查看php这个包的详细信息

IV、查询某包生成了哪些文件

rpm -ql package_name

        rpm -qi mysql #查看mysql这个包生成了哪些文件

V、查询某包安装生成哪些配置文件

rpm -ql package_name

        rpm -qi httpd #查看httpd包安装后生成了哪些配置文件

VI、查询程序包的相关脚本

rpm -q --scripts package_name

        rpm -q --scripts httpd

一般情况下,会有四个脚本,分别是,安装前、安装后、卸载前、卸载后

VII、查询某个文件是由哪个包安装生成的

rpm -qf  file_path

        rpm -qf /etc/httpd/conf/httpd.conf #我们查看httpd.conf这个文件是由哪个包生成的

对未安装的包执行查询:-p选项的使用

语法:rpm [option] package_path

I、查询这个包安装后的详细

rpm -qpi package_path

        rpm -qpi mysql-5.1.71-1.el6.x86_64.rpm #查看mysql包安装后,会生成哪些信息

II、查询这个包安装后生成的文件

rpm -qpl package_path

        rpm -qpl mysql-5.1.71-1.el6.x86_64.rpm

III、查询这个包安装后生成的配置文件

rpm -qpc package_path

        rpm -qpc mysql-5.1.71-1.el6.x86_64.rpm

IV、查询这个包安装后生成的帮助文件

rpm -qpd package_path

        rpm -qpd mysql-5.1.71-1.el6.x86_64.rpm

检验某个包安装后,其文件属性是否发生了改变

rpm  -V package_name

        rpm -V httpd #查看httpd的文件属性是否发生改变

4、RPM包的获取途径:

如果你在生成系统上装了一个RPM包,但是,是人家改过的,这样的程序,谁能放心,所以,RPM的安全可靠性就显得尤为重要了

a、到项目的官网去下载源代码或是安装包

b、从发行的光盘上去获取安装包

c、从国内知名的源上获取

比如:http://mirrors.sohu.com

d、很多第三方机构或个人都制作都公开发布许多rpm包

比如:http://rpm.pbone.net

e、可靠的途径:EPEL,fedora就有EPEL的源

5、对于包的本身,我们也要进行验证,即要获得发行商的公钥

在获得公钥的基础上,我们导入公钥

    rpm --import  PUBKEY

然后,在安装过程中,程序安装会自动提醒你的

RPM包是一个非常方便、高效的程序安装方式,我们应该多多加以学习,同时,一定要保证我们的包的来源,在企业生产系统上,如果是被人改过的包,那将可能会是个灾难

时间: 2024-09-30 21:30:17

RPM的命名规则及其用法的相关文章

RHCE7 -- RPM包命名规则

rpm软件包文件采用软件包名称组合name-version-release.architecture的方式进行命名  以下面的rpm包为例: kernel-devel-3.10.0-121.el7.x86_64 ·name:描述其内容的一个或多个词语(kernel-devel) ·version:原始软件的版本号(3.10.0) ·release:基于该版本的软件包的发行版本号,有软件打包商设置,不一定是原始软件开发商(121.e17) ·arch:编译的软件包可以运行的处理器架构(x86_64

常见linux系统中RPM包的通用命名规则

本文重点说一下在常见的linux系统中,RPM包通用的命名规则. RPM包的一般格式为:name-version-arch.rpmname-version-arch.src.rpm 例:httpd-2.2.3-29.el5.i386.rpmhttpd-devel-2.2.3-29.el5.i386.rpmhttpd-manual-2.2.3-29.el5.i386.rpmsystem-config-httpd-1.3.3.3-1.el5.noarch.rpm (1)name,如:httpd,是软

GO语言中import的规则和用法

GO语言中引入包使用import,我将在本文讲解下规则和用法. 一些规则: 1.包中不能有main方法. 2.同文件夹中可以直接用方法名调用. 3.main函数建议放在package main里4.main不能调用同个目录下的其它文件中的方法. 5.还可以把包放在上级的目录中,如: /src/myFolder/foo/bar1.go #package foo /src/myFolder/foo/bar2.go #package foo /src/myFolder/foo/bar3.go #pac

.NET 基础 一步步 一幕幕 [注释、命名规则、访问修饰符、数据类型、常量、变量]

注释.命名规则.访问修饰符.数据类型.常量.变量 话说一个不会写注释的程序猿的不是一个好吃货,我们本篇就从注释开始说起好了. 在C#中有三种注释: 第一种:单行注释  以//开头,后面的就是注释内容 –  //单行注释 –  第二种:多行注释  以 /*开头   */结束 之间的是注释内容 –  /*  */多行注释 –  第三种:文档注释  在方法或类的上一行输入 ///就会产生 –  /// –  ///文档注释 –  /// –  So....截图就是这三种注释的用法了. 再来说说命名规则

详解 Python 中的下划线命名规则

在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后……那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单下划线(_)会在以下3种场景中使用: 1.1 在解释器中: 在这种情况下,“_”代表交互式解释器会话中上一条执行的语句的结果.这种用法首先被标准CPython解释器采用,然后其他类型的解释器也先后采用. >>> _ Traceback (most recent call last): Fil

网页制作中规范使用DIV+CSS命名规则,可以改善优化功效特别是团队合作时候可以提供合作制作效率,具体DIV CSS命名规则CSS命名大全内容如下:

页头:header  如:#header{属性:属性值;}或.header{属性:属性值;},也许你需要了解class与id区别及用法登录条:loginBar         标志:logo                侧栏:sideBar广告:banner              导航:nav                 子导航:subNav菜单:menu               子菜单:subMenu      搜索:search滚动:scroll               页

C/C++ 代码规范: 命名规则、注释、格式

摘抄精简Google 开源项目风格指南: http://zh-google-styleguide.readthedocs.org/en/latest/contents/ 一. 命名规则 永远不要使用单词缩写(如count写成cnt) 变量名: 小写字母,下划线连接,一般用名词,如error_count 类的成员变量以下划线结尾,如my_exciting_member_variable_ 结构体的数据变量,小写字母,下划线连接 全局变量,前缀g_ ,如g_global_variable 常量: 加

Cisco IOS版本命名规则

首先说说IOS的运行平台,c2500.c2600.c4500.c2950代表运行此IOS的硬件平台,例如:C2500指2500系列路由器. 其次,看看IOS的版本,IOS有主版本号:11.0.11.1.11.2.11.3.12.0.12.1.12.2.12.3.12.4等,这些主版本号相当于windows的版本有win98.win2000.winxp.win2003. 当Cisco发布了某个主版本号的IOS以后,它会对它进行维护(仅修正bug,不添加新功能),每维护一次,维护版本号加1.例如c2

小猪猪逆袭成博士之C++基础篇(一)数据精度、强制类型转换、变量命名规则

小猪猪逆袭成博士之C++基础篇(一) 关键词: 数据精度.强制类型转换.变量命名规则 综述: 1.大多数编程语言通过两种方式来进一步补充其特征:一是赋予程序员自定义数据类型的权利(C++中的类):二是讲一些有用的功能封装成库函数提供给程序员使用(C++提供的函数和标准库). 2.C++是一种静态数据类型语言,他的类型检查发生在编译时,而另外一些语言例如Python是在运行时检查数据类型的. 基础篇主要分为六个部分,通过这六个部分我们将了解C++的基本知识.通过这些基本语法知识就足够在OJ平台上A