rpm解读
摘要:本文介绍了rpm相关概念以及rpm的四种基本的操作方法,并对其常用命令进行总结
一、rpm简介1.1rmp简介
1.1.1what(哪些是rmp)
rpm的全称是ReadhatPackageManager,是由红帽公司开发的。原意是RedHat软件包管理。在Fedora、Redhat、Mandriva等主流发行版本。
1.1.2how(为何须要rpm)
在一个操作系统下,须要安装实现各类功能的软件包。这种软件包通常都有各自的程序,并且同时也有纷繁复杂的依赖关系。同时还须要解决软件包的版本,以及安装,配置linux查看os版本信息,卸载的手动化问题。为了解决这种问题,RedHat针对自己的系统提出了一个较好的办法来管理成千上百的软件。这就是RPM管理系统。在系统中安装了rpm管理系统之后linux软件工程师培训,只要是符合rpm文件标准的打包的程序都可以便捷的安装,升级,卸载。
1.1.3where(应用场景:是不是所有的linux都使用rmp)
任何系统都须要包管理系统,因而好多linux都使用rpm系统。但rpm系统是为RH转门设计的。并且TL,Fedora等系统也都使用rpm。因为rpm的源程序可以在别的系统上进行编译,所以有可能在别的系统上也使用rpm。
1.1.4不同操作系统发行的rpm包能否混用?
对于早已编译成二补码的rpm包,因为操作系统环境不同,通常不能混用。对于以src.rpm发行的软件包,因为须要安装时进行本地编译,所以一般可以在不同系统下安装
1.2.rpm格式文件介绍
1.2.1rpm包上面都包含哪些?
rpm上面包含可执行的二补码程序,该程序和windows的软件包中的.exe文件类似是可执行的;rpm包中还包括程序运行时所须要的文件,这也和windows的软件包类似.
1.2.2rmp格式文件有两种方式
二补码包(Binary)以及源代码包(Source)两种。二补码包可以直接安装在计算机中,而源代码包将会由RPM手动编译、安装。源代码包时常以src.rpm作为后缀名。
两种文件的格式:
xxxxxx.rpm--àRPM的格式,早已经过编译且包装完成的。
xxxx.src.rpm-àSRPM的格式,包含未编译的原始码信息。
rpm命名通常由以下几部份组成:
tiger-3.1-5.i386.rpm
(1)套件名称:即每位套件的名称。
(2)版本的信息:每一次更新版本就须要有一个版本的信息。
(3)释出次数:也就是编译的次数啦!这么为什么须要重复的编译呢?这是因为同一版的套件中,可能因为有个别bug或则是安全上的疑虑,所以必需要重新设定曾经打包时侯的设定参数,设定完成以后重新编译并打包成RPM档案!因而就有不同的打包数出现了!(注:这个时侯原始码虽然还是3.1哪个版本,只是下达编译时的参数不同而已!)
(4)操作硬件平台:因为RPM可以适用在不同的操作平台上,并且因为不同的平台设定的参数还是有所差别性!,为此,要对不同CPU进行最佳化参数的设定,因而就有i386,i586,i686与noarch等的名称出现了。
Note:noarch:表示没有任何硬件等级上的限制。
二、rmp常用技巧2.1.查询
命令格式:
rpm{-q|--query}[select-options][query-options]
RPM的查询功能很强悍。通常分为:查看已安装软件包的信息和查看未安装软件包的信息(并且要有该软件包)
²查询已安装软件包的信息
2.1.1查询系统已安装的软件;
命令格式:
rpm-qsoftname
eg:
[root@localhostbeinan]#rpm-qgaim
gaim-1.3.0-1.fc4
Note:
(1)-q就是--query:表示查询
(2)查看系统中所有早已安装的包,要加-a参数
[root@localhostRPMS]#rpm–qa
(3)在所有早已安装的软件包中查找某个软件,例如说gaim;可以用如下命令。
[root@localhostRPMS]#rpm-qa|grepgaim
该命令等价于:rpm–qgaim
(4)假如分页查看,再加一个管路|和more命令;
[root@localhostRPMS]#rpm-qa|more
2.1.2查询已安装的文件属于那个软件包
命令格式:
rpm-qffilename
note:必须给出文件的绝对路径
eg:
[root@localhostRPMS]#rpm-qf/usr/lib/libacl.la
libacl-devel-2.2.23-8
2.1.3查询已安装软件包安装到何处
命令格式:
rpm–qlsoftname
eg:
[root@localhostRPMS]#rpm-qllynx
2.1.4查询已安装软件包的信息
命令格式:
rpm-qisoftname
2.1.5查询已安装软件的配置文件
命令格式:
rpm-qcsoftname
eg:
[root@localhostRPMS]#rpm-qclynx
²查询未安装的软件包的信息:
2.1.6查看一个软件包的用途、版本等信息
命令格式:
rpm–qpifile.rpm
2.1.7查询一个软件包所包含的文件
命令格式:
rpm-qplfile.rpm
2.1.8查询润健包文档所在的位置
命令格式:
rpm–qpdfile.rpm
2.1.9查看软件包的配置文件
命令格式:
rpm-qpcfile.rpm
2.1.10查看一个软件包的依赖关系
命令格式:
rpm-qpRfile.rpm
具体参数的解释:
-a查询所有已安装的软件包
·-f将查询包含有文件.的软件包
·-p查询软件包文件名为的软件包还可以指定查询软件包时所显示的信息。它们被叫做信息选择选项:
·-i显示软件包信息,如描述,发行号,规格,建立日期,安装日期,平台,以及其它一些各种信息。
·-l显示软件包中的文件列表。
·-s显示软件包中所有文件的状态。
·-d显示被标明为文档的文件列表(man指南,info指南,READMEs,etc)。
·-c显示被标明为配置文件的文件列表。那些是您要在安装完毕之后加以订制的文件(sendmail.cf,passwd,inittab,etc)。
2.2.安装
命令格式:
rpm-isoftnam.rpm
常用:
rpm–ivhsoftname.rpm安装软件包信息
选项的具体意义如下:
选项参数涵义:
-i:install的意思
-v:view查看更细部的安装信息画面
-h:以安装信息列显示安装进度,比如前面的#字符号!
Note:
假如有依赖关系的要先解决依赖关系。
2.2.1指定安装路径
命令格式:
rpm-ivh--relocatepathsoftname.rpm
eg:
rpm-ivh--relocate/=/opt/gaimgaim-1.3.0-1.fc4.i386.rpm
2.3.卸载
命令格式:
命令格式
rpm-esotfname
Note:
注意这儿使用软件包的名子softnamelinux查看os版本信息,而不是软件包文件的名子softname-1.0-1.i386.rpm。假如其它软件包依赖于您要卸载的软件包,卸载时则会形成错误信息.
2.4.升级
命令格式:
rpm–Uvhsoftname.rpm
eg:
rpm–Uvhfoo-2.0-1.i386.rpm
RPM将手动卸载已安装的老总本的foo软件包.
Note:假如要从新版本将到旧版本嵌入式linux驱动程序设计从入门到精通,可以使用--oldpackage参数
eg:
[root@localhostRPMS]#rpm-qagaim
gaim-1.5.0-1.fc4
[root@localhostRPMS]#rpm-Uvh--oldpackagegaim-1.3.0-1.fc4.i386.rpm
Preparing...###########################################[100%]
1:gaim###########################################[100%]
[root@localhostRPMS]#rpm-qagaim
gaim-1.3.0-1.fc4
三.其他常用命令3.1.初始化rpm数据库
上面提及的使用rpm命令查询一个rpm包是否安装,是通过rpm数据库来完成的;为此,有时我们要用下边的命令初始化rpm数据库
命令格式:
rpm--initdb
rpm--rebuilddb(该命令时间较长)
note:
这两个命令极为有用,假如rpm系统出现了问题,不能安装或查询,此时就要初始化rpm数据库。
3.2.rpm支持网路安装