Linux下RPM软件包的安装及卸载

在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装、卸载及管理等操作。RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件。Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装。RPM 有五种操作模式,分别为:安装、卸载、升级、查询和验证。

RPM 安装操作

命令:

rpm -i 需要安装的包文件名

举例如下:

rpm -i example.rpm 安装 example.rpm 包;

rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息;

rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度;

RPM 查询操作

命令:

rpm -q …

附加查询命令:

a 查询所有已经安装的包以下两个附加命令用于查询安装包的信息;

i 显示安装包的信息;

l 显示安装包中的所有文件被安装到哪些目录下;

s 显示安装版中的所有文件状态及被安装到哪些目录下;以下两个附加命令用于指定需要查询的是安装包还是已安装后的文件;

p 查询的是安装包的信息;

f 查询的是已安装的某文件信息;

举例如下:

rpm -qa | grep tomcat4 查看 tomcat4 是否被安装;

rpm -qip example.rpm 查看 example.rpm 安装包的信息;

rpm -qif /bin/df 查看/bin/df 文件所在安装包的信息;

rpm -qlf /bin/df 查看/bin/df 文件所在安装包中的各个文件分别被安装到哪个目录下;

RPM 卸载操作

命令:

rpm -e 需要卸载的安装包

在卸载之前,通常需要使用rpm -q …命令查出需要卸载的安装包名称。

举例如下:

rpm -e tomcat4 卸载 tomcat4 软件包

RPM 升级操作

命令:

rpm -U 需要升级的包

举例如下:

rpm -Uvh example.rpm 升级 example.rpm 软件包

RPM 验证操作

命令:

rpm -V 需要验证的包

举例如下:

rpm -Vf /etc/tomcat4/tomcat4.conf

输出信息类似如下:

S.5....T c /etc/tomcat4/tomcat4.conf

其中,S 表示文件大小修改过,T 表示文件日期修改过。限于篇幅,更多的验证信息请您参考rpm 帮助文件:man rpm

RPM 的其他附加命令

--force 强制操作 如强制安装删除等;

--requires 显示该包的依赖关系;

--nodeps 忽略依赖关系并继续操作;

来源:Linux下RPM软件包的安装及卸载

RPM包安装/升级/查询/卸载

一个RPM包包含了已压缩的软件文件集以及该软件的内容信息(在头文件中保存),通常表现为以.rpm扩展名结尾的文件,例如package.rpm。对其操作,需要使用rpm命令。下面介绍rpm工具的参数和使用方法,并以IBMLotusNotes在RHEL5.2安装为例做具体说明。

RPM命令常用参数

RPM的常规使用方法为rpm-?package.rpm,其中-?为操作参数(更多信息,请查阅帮助$manrpm):

-q在系统中查询软件或查询指定rpm包的内容信息
-i在系统中安装软件
-U在系统中升级软件
-e在系统中卸载软件
-h用#(hash)符显示rpm安装过程
-v详述安装过程
-p表明对RPM包进行查询,通常和其它参数同时使用,如:
-qlp查询某个RPM包中的所有文件列表
-qip查询某个RPM包的内容信息
RPM命令参数使用方法

以上参数有些需要组合使用,比如说rpm-hpackage.rpm是没有意义的,但rpm-ihpackage.rpm即表示安装package并用#符显示安装进度。

安装RPM包
#rpm-ivhpackage.rpm

升级RPM包命令
#rpm-Uvhpackage.rpm

卸载RPM包命令
#rpm-evpackage

查询RPM包中包含的文件列表命令
#rpm-qlppackage

查询RPM包中包含的文件列表命令
#rpm-qlppackage

查询RPM包中包含的内容信息命令
#rpm-qippackage

查询系统中所有已安装RPM包
#rpm-qa

RPM包管理示例

以下步骤描述了一个普通用户安装IBMLotusNotesV85(以下简称Notes)的典型操作过程。Notes的RPM包名为ibm_lotus_notes-8.5.i586.rpm。

首先查询是否该软件是否已经在系统中存在      
#rpm-qa|grepibm_lotus_notes

如果返回信息为空那么说明该软件还未被安装。

查询Notes软件包内容:  

  1. #rpm-qipibm_lotus_notes-8.5.i586.rpm 
  2. Name:ibm_lotus_notesRelocations:/opt/ibm/lotus/notes 
  3. Version:8.5Vendor:IBM 
  4. Release:20081211.1925BuildDate:Sat13Dec200809:38:55AMCST 
  5. InstallDate:(notinstalled)BuildHost:dithers.notesdev.ibm.com 
  6. Group:Applications/Office 
  7. SourceRPM:ibm_lotus_notes-8.5-20081211.1925.src.rpm 
  8. Size:603779427License:Commercial 
  9. Signature:DSA/SHA1,Sat13Dec200809:43:02AMCST,KeyID314c8c6534f9ae75 
  10. Summary:IBMLotusNotes 
  11. Description: 
  12. IBMLotusNotessoftwareprovidesarobust...

安装Notes:      
#rpm-ivhibm_lotus_notes-8.5.i586.rpm

返回信息:

  1. Preparing...###########################################[100%] 
  2. 1:ibm_lotus_notes###########################################[100%]

升级Notes:
若今后需要基于该版本升级至更高版本的Notes(缝.0-ibm_lotus_notes-9.0.i586.rpm),则使用-U参数:

#rpm-Uvhibm_lotus_notes-8.5.i586.rpm

在该步骤中如果使用-i则系统通常会报文件冲突错误,无法正常安装。

卸载Notes
注意卸载软件使用软件名称,而不是包文件名:

#rpm-evibm_lotus_notes 以上就是RPM包安装/升级/查询/卸载。

 

linux下制作安装rpm包

一、制作rpm包

以rp-pppoe-3.10为列进行制作过程。

1.下载rp-pppoe-3.10.tar.gz

[root@localhost home]# pwd

/home

[root@localhost home]#

2.解压

# tar zxvf rp-pppoe-3.10.tar.gz

3.

# cp /home/rp-pppoe-3.10/rp-pppoe.spec /usr/src/redhat/SOURCES/

# cp /home/rp-pppoe-3.10.tar.gz /usr/src/redhat/SOURCES/

3.制作rpm包

# cd /usr/src/redhat/SOURCES/

# rpmbuild -bb rp-pppoe.spec  <==仅编译成 RPM 档案

# rpmbuild -ba rp-pppoe.spec  <==编译并同时产生 RPM 与 SRPM 档案

如果编译成功,就已经制作好rp-pppoe的rpm包了,查看一下

[root@localhost i386]# pwd

/usr/src/redhat/RPMS/i386

[root@localhost i386]# ll

total 420

-rw-r--r-- 1 root root 186322 01-06 11:09 rp-pppoe-3.10-1.i386.rpm

-rw-r--r-- 1 root root 150356 01-06 11:09 rp-pppoe-debuginfo-3.10-1.i386.rpm

-rw-r--r-- 1 root root  63319 01-06 11:09 rp-pppoe-gui-3.10-1.i386.rpm

[root@localhost i386]#

二、安装rpm包

1.查看系统有五安装过rp-pppoe。

[root@localhost i386]# rpm -qa rp-pppoe

rp-pppoe-3.5-1

2.删除系统已经安装过的rpm包

[root@localhost i386]# rpm -e rp-pppoe

[root@localhost i386]# rpm -qa rp-pppoe

3.安装刚才制作好的rpm包

[root@localhost i386]# ls

rp-pppoe-3.10-1.i386.rpm            rp-pppoe-gui-3.10-1.i386.rpm

rp-pppoe-debuginfo-3.10-1.i386.rpm

[root@localhost i386]# rpm -ivh rp-pppoe-3.10-1.i386.rpm

Preparing...                ########################################### [100%]

1:rp-pppoe               ########################################### [100%]

[root@localhost i386]# rpm -qa rp-pppoe

rp-pppoe-3.10-1

[root@localhost i386]# ls /etc/ppp/pppoe-server-options

/etc/ppp/pppoe-server-options

以上信息说明安装成功了哦。

三、错误处理

在制作rpm(1.3步)的时候出现错:

RPM build errors:

Installed (but unpackaged) file(s) found:

解决办法:

将/usr/lib/rpm/macros 中

%__check_files         /usr/lib/rpm/check-files %{buildroot}  注释掉

来源:linux下RPM制作
posted @ 2014-03-18 16:21  AI Algorithms  阅读(778)  评论(0编辑  收藏  举报