Linux 中 RPM 命令参数使用详解
在Linux操作系统中,有一个系统软件包,它的功能类似于Windows里面的“添加/删除程序”,但是功能又比“添加/删除程序”强很多,它就是 Red Hat Package Manager(简称RPM)。此工具包最先是由Red Hat公司推出的,后来被其他Linux开发商所借用。由于它为Linux使用者省去了很多时间,所以被广泛应用于在Linux下安装、删除软件。下面就给大家介绍一下它的具体使用方法。
1.我们得到一个新软件,在安装之前,一般都要先查看一下这个软件包里有什么内容,假设这个文件是:Linux-1.4-6.i368.rpm,我们可以用这条命令查看:
rpm -qpi Linux-1.4-6.i368.rpm
系统将会列出这个软件包的详细资料,包括含有多少个文件、各文件名称、文件大小、创建时间、编译日期等信息。
2.上面列出的所有文件在安装时不一定全部安装,就像Windows下程序的安装方式分为典型、完全、自定义一样,Linux也会让你选择安装方式,此时我们可以用下面这条命令查看软件包将会在系统里安装哪些部分,以方便我们的选择:
rpm -qpl Linux-1.4-6.i368.rpm
3.选择安装方式后,开始安装。我们可以用rpm-ivh Linux-1.4-6.i368.rpm命令安装此软件。在安装过程中,若系统提示此软件已安装过或因其他原因无法继续安装,但若我们确实想执行安装命令,可以在 -ivh后加一参数“-replacepkgs”:
rpm -ivh -replacepkgs Linux-1.4-6.i368.rpm
4.有时我们卸载某个安装过的软件,只需执行rpm-e <文件名>命令即可。
5.对低版本软件进行升级是提高其功能的好办法,这样可以省去我们卸载后再安装新软件的麻烦,要升级某个软件,只须执行如下命令:rpm -uvh <文件名>,注意:此时的文件名必须是要升级软件的升级补丁�
6.另外一个安装软件的方法可谓是Linux的独到之处,同时也是RMP强大功能的一个表现:通过FTP站点直接在线安装软件。当找到含有你所需软件的站点并与此网站连接后,执行下面的命令即可实现在线安装,譬如在线安装Linux-1.4-6.i368.rpm,可以用命令:
rpm -i [url]ftp://ftp.pht.com/pub/linux/redhat/...-1.4-6.i368.rpm[/url]
7.在我们使用电脑过程中,难免会有误操作,若我们误删了几个文件而影响了系统的性能时,怎样查找到底少了哪些文件呢?RPM软件包提供了一个查找损坏文件的功能,执行此命令:rpm -Va即可,Linux将为你列出所有损坏的文件。你可以通过Linux的安装光盘进行修复。
8.Linux系统中文件繁多,在使用过程中,难免会碰到我们不认识的文件,在Windows下我们可以用“开始/查找”菜单快速判断某个文件属于哪个文件夹,在Linux中,下面这条命令行可以帮助我们快速判定某个文件属于哪个软件包:
rpm -qf <文件名>
9.当每个软件包安装在Linux系统后,安装文件都会到RPM数据库中“报到”,所以,我们要查询某个已安装软件的属性时,只需到此数据库中查找即可。注意:此时的查询命令不同于1和8介绍的查询,这种方法只适用于已安装过的软件包!命令格式:
rpm -参数 <文件名>
当用RPM进行软件安装,系统提示“软件关联性出错”的时候,可以加“nodeps”参数强行安装,例如:
例如: rpm -Uvh gcc-2.96-112.7.2.i386.rpm --nodeps
系统提示: preparing ################### [100%]
1、gcc ################### [100%]
可能存在的问题是:
1、加了“NODEPS”参数不保证可以成功安装
2、即使安装成功了,不一定能正常使用 使用rpm命令查询软件包:
1、查询系统中安装的所有RPM包
$ rpm -qa
查询当前linux系统中已经安装的软件包。
例:$ rpm -qa | grep -i x11 | head -3 察看系统中包含x11字符串的前3行软件包。
2、查询软件包是否安装
$ rpm �Cq rpm包名称 察看系统中指定软件包是否安。
例: $ rpm -q bash 察看系统中bash软件包是否安装。
"rpm -q"命令中指定的软件包名称需要准确的拼写,该命令不会在软件包的名称中进行局部匹配的查询。
3、查询已安装软件包详细信息
$ rpm �Cqi RPM包名称 查询linux系统中指定名称软件包的详细信息。
例:$ rpm -qi bash 察看bash软件包的详细信息。
"rpm -qi"命令的执行结果中包含较详细的信息,包括:软件名称,版本信息,包大小,描述,等。
4、查询已安装软件包中的文件列表
$ rpm �Cql RPM包名称 查询已安装软件包在当前系统中安装了哪些文件。
例:$ rpm -ql bash | head -3 查看bash软件在系统中已安装文件的前3行文件列表。
$ rpm -ql bash | grep bin 用过滤方式察看bash中包含bin字符串的文件列表。
5、查询系统中文件所属的软件包
$ rpm �Cqf 文件名称 查询linux系统中指定文件所属的软件包。
例:$ rpm -qf /bin/bash 察看bash文件所属的软件包。
bash-3.0-19.2 显示结果。
6、查询RPM安装包文件中的信息
$ rpm �Cqpi RPM包文件名 察看RPM包未安装前的详细信息。
$ rpm �Cqpl RPM包文件名 察看RPM包未安装前的文件列表。
"rpm -qpi和rpm -qpl 这两条命令可作为在安装软件包之前对其的了解。
7、rpm命令查询实例
$ which mount 获得mount命令的可执行文件路径。
$ rpm �Cqf /bin/mount 查询/bin/mount所属的软件包。
$ rpm �Cqi util-linux 查询/bin/mount所属软件包的详细信息。
$ rpm �Cqf util-linux | grep mount 查询/bin/mount所属软件包中包括mount相关所有文件。 使用rpm命令安装软件包:
1、rpm软件包地基本安装
$ rpm �Ci rpm安装包文件名 安装该软件包中的文件到当前系统,安装过程不提示任何信息。
2、在安装软件包的同时显示详细信息
$ rpm �Civh rpm安装包文件 安装该软件包中的文件到当前系统,安装过程会以百分比的形式显示安装的进度和一些其他信息。
3、RPM软件包安装的依赖关系
强制安装:$ rpm --force �Ci rpm包文件名
注:要先满足软件包的依赖关系后再进行软件包的安装,使用强制安装命令安装不能保证软件安装到系统后一定能
正常运行,因此建议慎重使用 使用rpm命令卸载软件包:
1、RPM软件包的卸载
$ rpm -e 软件包名称
软件包的卸载,在卸载时不显示任何信息。
注:RPM软件包的卸载同样存在依赖关系,只有在没有依赖关系存在时才能对其进行卸载。
2、rpm软件包卸载的依赖关系
在使用RPM命令进行卸载时,RPM命令会分析要卸载的软件包的依赖关系,当存在依赖关系时会自动停止,并显由
哪个软件造成的卸载失败。根据RPM提示的错误信息,确定先卸载的软件包,再卸载被依赖的软件包 使用rpm命令升级软件包:
$ rpm - U rpm安装包文件名
注:"rpm -u"命令中使用的升级软件包文件最好使用RED HAT公司针对当前的linux版本官方推出的升级文件,建议不要使用第三方提供的升级包。
应用程序编译
开放源代码应用程序的编译安装 1.安装一个包
# rpm -ivh
2.升级一个包
# rpm -Uvh
3.移走一个包
# rpm -e
4.安装参数
--force 即使覆盖属于其它包的文件也强迫安装
--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
5.查询一个包是否被安装
# rpm -q < rpm package name>
6.得到被安装的包的信息
# rpm -qi < rpm package name>
7.列出该包中有哪些文件
# rpm -ql < rpm package name>
8.列出服务器上的一个文件属于哪一个RPM包
#rpm -qf
9.可综合好几个参数一起用
# rpm -qil < rpm package name>
10.列出所有被安装的rpm package
# rpm -qa
11.列出一个未被安装进系统的RPM包文件中包含有哪些文件?
# rpm -qilp < rpm package name>