在Linux操作系统中,有一个系统软件包,它的功能类似于Windows上面的“添加/删掉程序”,而且功能又比“添加/删掉程序”强好多,它就是RedHatPackageManager(简称RPM)。此工具包最先是由RedHat公司推出的,后来被其他Linux开发商所借用。因为它为Linux使用者省去了好多时间,所以被广泛应用于在Linux下安装、删除软件。下边就给你们介绍一下它的具体使用技巧。
rpm命令是RPM软件包的管理工具。rpm本来是RedHatLinux发行版专门拿来管理Linux各项套件的程序,因为它遵守GPL规则且功能强悍便捷,因此广受欢迎。渐渐遭到其他发行版的采用。RPM套件管理方法的出现,让Linux便于安装,升级,间接提高了Linux的适用度。
句型
rpm(选项)(参数)
选项
-a:查询所有套件;
-b+或-t +:设置包装套件的完成阶段,并指定套件档的文件名称;
-c:只列出组态配置文件,本参数需配合"-l"参数使用;
-d:只列出文本文件,本参数需配合"-l"参数使用;
-e或--erase:删除指定的套件;
-f+:查询拥有指定文件的套件;
-h或--hash:套件安装时列出标记;
-i:显示套件的相关信息;
-i或--install:安装指定的套件档;
-l:显示套件的文件列表;
-p+:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R:显示套件的关联性信息;
-s:显示文件状态,本参数需配合"-l"参数使用;
-U或--upgrade:升级指定的套件档;
-v:显示指令执行过程;
-vv:详细显示指令执行过程,便于排错。
参数
软件包:指定要操纵的rpm软件包。
实例
怎么安装rpm软件包
rpm软件包的安装可以使用程序rpm来完成。执行下边的命令:
rpm -ivh your-package.rpm
其中your-package.rpm是你要安装的rpm包的文件名,通常放在当前目录下。
安装过程中可能出现下边的警告或则提示:
... conflict with ...
可能是要安装的包里有一些文件可能会覆盖现有的文件,缺省时这样的情况下是难以正确安装的可以用rpm--force-i强制安装即可
... is needed by ... ... is not installed ...
此包须要的一些软件你没有安装可以用rpm--nodeps-i来忽视此信息,也就是说rpm-i--force--nodeps可以忽视所有依赖关系和文件问题,哪些包都能安装上,但这些强制安装的软件包不能保证完全发挥功能。
怎么安装.src.rpm软件包
有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时须要进行编译。这类软件包有两种安装方式:
方式一:
rpm -i your-package.src.rpm cd /usr/src/redhat/SPECS rpmbuild -bp your-package.specs #一个和你的软件包同名的specs文件 cd /usr/src/redhat/BUILD/your-package/ #一个和你的软件包同名的目录 ./configure #这一步和编译普通的源码软件一样,可以加上参数 make make install
方式二:
rpm -i you-package.src.rpm cd /usr/src/redhat/SPECS
前两步和技巧一相同
rpmbuild -bb your-package.specs #一个和你的软件包同名的specs文件
这时在/usr/src/redhat/RPM/i386/(依据具体包的不同,也可能是i686,noarch等等)在这个目录下,有一个新的rpm包,这个是编译好的二补码文件。
执行rpm-inew-package.rpm即可安装完成。
怎么卸载rpm软件包
使用命令rpm-e包名,包名可以包含版本号等信息,并且不可以有后缀.rpm,例如卸载软件包proftpd-1.2.8-1,可以使用下述格式:
rpm -e proftpd-1.2.8-1 rpm -e proftpd-1.2.8 rpm -e proftpd- rpm -e proftpd
不可以是下述格式:
rpm -e proftpd-1.2.8-1.i386.rpm rpm -e proftpd-1.2.8-1.i386 rpm -e proftpd-1.2 rpm -e proftpd-1
有时会出现一些错误或则警告:
... is needed by ...
这说明这个软件被其他软件须要,不能随意卸载小型linux系统,可以用rpm-e--nodeps强制卸载
怎么不安装并且获取rpm包中的文件
使用工具rpm2cpio和cpio
rpm2cpio xxx.rpm | cpio -vi
rpm2cpio xxx.rpm | cpio -idmv
rpm2cpio xxx.rpm | cpio --extract --make-directories
参数i和extract相同,表示提取文件。v表示指示执行进程,d和make-directory相同,表示按照包中文件原先的路径构建目录,m表示保持文件的更新时间。
怎么查看与rpm包相关的文件和其他信息
下边所有的反例都假定使用软件包mysql-3.23.54a-11
1、我的系统中安装了这些rpm软件包。
rpm -qa 讲列出所有安装过的包
假如要查找所有安装过的包含某个字符串sql的软件包
rpm -qa | grep sql
2、如何获得某个软件包的文件全名。
rpm -q mysql
可以获得系统中安装的mysql软件包全名,从中可以获得当前软件包的版本等信息。这个事例中可以得到信息mysql-3.23.54a-11
3、一个rpm包中的文件安装到哪里去了?
rpm -ql 包名
注意这儿的是不包括.rpm后缀的软件包的名称,也就是说只能用mysql或则mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。若果只是想晓得可执行程序放在哪里去了,也可以用which,例如:
which mysql
4、一个rpm包中包含这些文件。
5、如何获取关于一个软件包的版本,用途等相关信息?
6、某个程序是那个软件包安装的,或则那个软件鞋子含这个程序。
rpm -qf `which 程序名` #返回软件包的全名 rpm -qif `which 程序名` #返回软件包的有关信息 rpm -qlf `which 程序名` #返回软件包的文件列表
注意,这儿不是破折号,而是`,就是鼠标左上角的哪个键。也可以使用rpm-qilf,同时输出软件包信息和文件列表。
7、某个文件是那个软件包安装的,或则那个软件鞋子含这个文件。
注意,前一个问题中的方式,只适用与可执行的程序,而下边的方式,除了可以用于可执行程序,也可以用于普通的任何文件。前提是晓得这个文件名。首先获得这个程序的完整路径,可以用whereis或则which,之后使用rpm-qf诸如:
whereis ftptop ftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz rpm -qf /usr/bin/ftptop proftpd-1.2.8-1 rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt proftpd-1.2.8-1
1.我们得到一个新软件,在安装之前,通常都要先查看一下这个软件包里有哪些内容,假定这个文件是:Linux-1.4-6.i368.rpm,我们可以用这条命令查看:
rpm-qpiLinux-1.4-6.i368.rpm
系统将会列举这个软件包的详尽资料,包括富含多少个文件、各文件名称、文件大小、创建时间、编译日期等信息。
2.里面列举的所有文件在安装时不一定全部安装,如同Windows下程序的安装方法分为典型、完全、自定义一样,Linux也会让你选择安装方法,此时我们可以用下边这条命令查看软件包将会在系统里安装什么部份,以便捷我们的选择:
rpm-qplLinux-1.4-6.i368.rpm
3.选择安装方法后,开始安装。我们可以用rpm-ivhLinux-1.4-6.i368.rpm命令安装此软件。在安装过程中,若系统提示此软件已安装过或因其他诱因难以继续安装,但若我们确实想执行安装命令,可以在-ivh后加一参数“-replacepkgs”:
rpm-ivh-replacepkgsLinux-1.4-6.i368.rpm
4.有时我们卸载某个安装过的软件,只需执行rpm-e命令即可。
5.对低版本软件进行升级是提升其功能的好办法,这样可以省去我们卸载后再安装新软件的麻烦,要升级某个软件linux 查看crontab属于哪个用户,只须执行如下命令:rpm-uvh,注意:此时的文件名必须是要升级软件的升级补丁?
6.另外一个安装软件的方式堪称是Linux的独特之处,同时也是RMP强悍功能的一个表现:通过FTP站点直接在线安装软件。当找到富含你所需软件的站点并与此网站联接后,执行下边的命令即可实现在线安装,例如在线安装Linux-1.4-6.i368.rpm,可以用命令:
rpm-iftp:///pub/linux/redhat/...-1.4-6.i368.rpm
7.在我们使用笔记本过程中,难免会有误操作,若我们删掉了几个文件而影响了系统的性能时,如何查找究竟少了什么文件呢?RPM软件包提供了一个查找毁坏文件的功能linux 查看crontab属于哪个用户,执行此命令:rpm-Va即可,Linux将为你列举所有破损的文件。你可以通过Linux的安装光碟进行修补。
8.Linux系统中文件繁杂,在使用过程中,难免会遇到我们不认识的文件,在Windows下我们可以用“开始/查找”菜单快速判定某个文件属于那个文件夹,在Linux中,下边这条命令行可以帮助我们快速判断某个文件属于那个软件包:
rpm-qf
9.当每位软件包安装在Linux系统后,安装文件就会到RPM数据库中“报到”linux操作系统下载,所以,我们要查询某个已安装软件的属性时,只需到此数据库中查找即可。注意:此时的查询命令不同于1和8介绍的查询,这些方式只适用于已安装过的软件包!命令格式:
rpm-参数
在Linux操作系统下,几乎所有的软件均通过RPM进行安装、卸载及管理等操作。RPM的全称为RedhatPackageManager,是由Redhat公司提出的,用于管理Linux下软件包的软件。Linux安装时,不仅几个核心模块以外,其余几乎所有的模块均通过RPM完成安装。RPM有五种操作模式,分别为:安装、卸载、升级、查询和验证。
RPM安装操作
命令:
rpm-i须要安装的包文件名
举例如下:
rpm-iexample.rpm安装example.rpm包;
rpm-ivexample.rpm安装example.rpm包并在安装过程中显示正在安装的文件信息;
rpm-ivhexample.rpm安装example.rpm包并在安装过程中显示正在安装的文件信息及安装进度;
RPM查询操作
命令:
rpm-q…
附加查询命令:
a查询所有早已安装的包以下两个附加命令用于查询安装包的信息;
i显示安装包的信息;
l显示安装包中的所有文件被安装到什么目录下;
s显示安装版中的所有文件状态及被安装到什么目录下;以下两个附加命令用于指定须要查询的是安装包还是已安装后的文件;
p查询的是安装包的信息;
f查询的是已安装的某文件信息;
举例如下:
rpm-qa|greptomcat4查看tomcat4是否被安装;
rpm-qipexample.rpm查看example.rpm安装包的信息;
rpm-qif/bin/df查看/bin/df文件所在安装包的信息;
rpm-qlf/bin/df查看/bin/df文件所在安装包中的各个文件分别被安装到那个目录下;
RPM卸载操作
命令:
rpm-e须要卸载的安装包
在卸载之前,一般须要使用rpm-q…命令查出须要卸载的安装包名称。
举例如下:
rpm-etomcat4卸载tomcat4软件包
RPM升级操作
命令:
rpm-U须要升级的包
举例如下:
rpm-Uvhexample.rpm升级example.rpm软件包
RPM验证操作
命令:
rpm-V须要验证的包
举例如下:
rpm-Vf/etc/tomcat4/tomcat4.conf
输出信息类似如下:
S.5....Tc/etc/tomcat4/tomcat4.conf
其中,S表示文件大小更改过,T表示文件日期更改过。限于篇幅,更多的验证信息请您参考rpm帮助文件:manrpm
RPM的其他附加命令
--force强制操作如强制安装删掉等;
--requires显示该包的依赖关系;
--nodeps忽视依赖关系并继续操作