Redhat Linux RPM包管理

RPM, Redhat Package Manager, 是Redhat公司首先引入的package管理机制。RPM能实现对Linux所有文件高效而

简洁的管理,从而已成为LINUX世界标准的包管理方法。下面我们将通过对rpm命令的介绍来展开RPM包管理之旅。

 

============

1.  RPM包安装

============

1.1. 安装

rpm -ivh openldap-servers-2.2.13-7.4E.x86_64.rpm

-i :  安装

-v:  verbose 模式

-h:  显示安装进度

1.2. 测试安装(并非真的安装包。对于确认安装操作会不会被允许,非常有用)

rpm -ivh --test openldap-servers-2.2.13-7.4E.x86_64.rpm

 

=========

2. 查询

=========

2.1. 查询文件来自哪个RPM 包

[root@mm ~]# rpm -qf /etc/inittab
initscripts-7.93.25.EL-1

2.2. 查询RPM包拥有的文件

[root@mm ~]# rpm -ql initscripts-7.93.25.EL-1
/bin/doexec
/bin/ipcalc
/bin/usleep
/etc/X11/prefdm
/etc/adjtime
/etc/initlog.conf

2.3. 查询系统已经安装的RPM包

[root@mm ~]# rpm -qa | less
basesystem-8.0-4
chkconfig-1.3.13.4-1
iputils-20020927-18.EL4.3
device-mapper-1.02.07-4.0.RHEL4

 

一个常用的操作是检查指定的包是否已被安装

[root@mm ~]# rpm -qa | grep initscripts-7.93.25.EL-1
initscripts-7.93.25.EL-1

2.4. 查询包的属性

[root@mm ~]# rpm -qi initscripts-7.93.25.EL-1
Name        : initscripts                  Relocations: (not relocatable)
Version     : 7.93.25.EL                        Vendor: Red Hat, Inc.
Release     : 1                             Build Date: Fri 21 Apr 2006 09:27:05 AM CST
Install Date: Fri 23 May 2008 05:25:01 PM CST      Build Host: hs20-bc1-4.build.redhat.com
Group       : System Environment/Base       Source RPM: initscripts-7.93.25.EL-1.src.rpm
Size        : 3507210                          License: GPL

2.5. 查询包在系统上的依赖关系

[root@mm ~]# rpm -q -R initscripts-7.93.25.EL-1
/bin/awk
/bin/bash
/bin/grep
...

 

从上面我们看到,initscripts 包依赖于/bin/awk等等文件,即如果没有这些文件的存在,initscripts包是无法被正常安装的。在我们安装RPM包时,包的依赖是RPM包安装过程中常见的问题,这要求用户在这个过程中找到问题的所在,并解决问题。

 

=========

3. 更新

=========

3.1. 升级(upgrade)

rpm -Uvh openldap-servers-2.2.13-7.4E.x86_64.rpm

3种情况 -

1)当前系统上的openldap-servers是一个旧的版本,那么旧的版本将会被替代;

2)当前系统上openldap-servers包没有安装,那么包会被正常安装;

3)当前系统上openldap-servers的版本并不比用户将要按装的版本旧,新包将不会被安装。

3.2. 更新(freshen)

rpm -Fvh openldap-servers-2.2.13-7.4E.x86_64.rpm

和RPM包升级的操作效果差不多,区别在于:

如果指定的包在当前的系统上并没有旧版本存在,包将不会被安装。

因为,很多时候用户会用下面的操作去更新RPM包。

rpm -Fvh *.rpm 

所以这个操作的好处就在于,他不会引入新的RPM包。

 

=========

4. 卸载

=========

[root@mm ~]# rpm -e quota-3.12-5

 

-e: 卸载指定的包

 

=========

5. 释放RPM包中的文件

=========

 

RPM包的本质是许多文件的一种归档形式。如果想从RPM包中提取某一个文件,我们可以将他先安装,然后找到我们要的文件。这里我们介绍一种简单而安全的方法:

[root@mm expect]# rpm2cpio ../expect-5.42.1-1.i386.rpm | cpio -div
./usr/bin/autoexpect
./usr/bin/dislocate
./usr/bin/expect
./usr/bin/ftp-rfc
./usr/bin/kibitz
./usr/bin/lpunlock
./usr/bin/mkpasswd

他将把RPM包中的文件释放到当前文件夹中。

 

上面介绍了rpm的各种管理性操作,对付LINUX包的日常管理应该应付自如了。当然对于rpm,还有许多的功能没有介绍,所以一定不要忘了"man rpm " :)

 

Reference:

1. rpm manual

rpm 是一个强大的命令,他的功能还有很多.

 

2. http://rpmfind.net/

正如上面提到的,RPM安装过程中包的依赖是一个很麻烦的事情。所以我们经常要去查找我们需要的包。上面的website提供了丰富的RPM包资源,值得一试 :)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值