linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 专题栏目 > LPI >
栏目导栏
  LPI
  cisco
资料搜索
热门文章
·LPI 101认证学习1-硬件和体系结
· LPI 101认证学习7-Linux安装与
·LPI 101认证学习26-X Window 系
·LPI 101认证学习8-Linux安装与
·LPI 101认证学习15-GNU和UNIX命
·LPI 101认证学习28-X Window 系
·LPI 101认证学习10-Linux安装与
·LPI 101认证学习11-GNU和UNIX命
·LPI 101&102 2007年考试大纲
·LPI 101认证学习18-设备、Linu
·LPI 101认证学习27-X Window 系
·LPI 101认证学习14-GNU和UNIX命
·LPI 101认证学习12-GNU和UNIX命
·LPI考试流程
· LPI 101认证学习9-Linux安装与
最新文章
·LPI 101&102 2007年考试大纲
·LPI 302中文考试大纲
·LPI 301中文考试大纲
·LPIC-3认证考试内容最终确定
·LPI 101认证学习28-X Window 系
·LPI 101认证学习27-X Window 系
·LPI 101认证学习26-X Window 系
·LPI 101认证学习25-设备、Linu
·LPI 101认证学习24-设备、Linu
·LPI 101 学习指南:一.安装网络
·LPI 101 学习指南:一.安装 本地
· 安装光盘介绍(The Installati
·LPI 101认证学习23-设备、Linu
·LinuxWorld上海开展 LPI与众多
·LPI 和 Canonical 联合发布Ubu
Google
 
LPI 101认证学习10-Linux安装与包管理之RPM包管理
[ 作者:  加入时间:2006-11-20 13:28:50  来自:Linux联盟 ]

Red Hat Package ManagerRPM 

本节讨论初级管理(LPIC-1)考试 101 的主题 1.102.6 的内容。这个主题的权值是 8

在前一节中,我们提供了简短的 包管理概述。在本节中,我们主要关注 Red Hat 开发的 Red Hat Package Manager,即 RPMRPM APT 有许多相似之处。它们都能够安装和删除包。它们都维护已安装的包的数据库。它们都有基本的命令行功能,还有提供更友好的用户界面的其他工具。它们都能够从互联网获得包。一般来说,采用 RPM 包的程序比采用 APT 包的程序少,尽管 rpm 命令的功能很丰富。另一个差异是 RPM 不能像 dpkg 那样维护系统上可用包的信息。

Red Hat 1995 年引入了 RPM。这种包管理系统现在用于按照 Linux Standard BaseLSB)进行打包。rpm 命令选项分为三组,分别用于:

  • 查询和检验包。

  • 安装、升级和删除包。

  • 执行其他功能。

在本教程中,我们主要关注前两组选项。可以在 rpm 的手册页中找到关于其他功能的信息。

还应该注意,rpm 是使用 RPM 的主命令的命令名,而 .rpm  RPM 文件的扩展名。所以一个 rpm”某某 rpm”一般表示 RPM 文件,而“rpm”常常表示命令。

安装和删除 RPM

我们在构建和安装程序一节中看到,在 Fedora Core 4 系统上安装 Dr Geo 时遇到了问题。在清单 17 中可以看出缺少 guile-config 命令。

rpm 入门

rpm 命令可以从本地文件系统或者通过 http ftp 从互联网安装包。清单 35 使用 rpm -ivh 命令和 guile-devel 包的网络源安装这个包。

x48Linux联盟
清单 35. 使用 rpm 安装 guile-devel

 

                                     

[root@attic4 ~]# rpm -ivh http://download.fedora.redhat.com/pub/fedora\

> /linux/core/4/i386/os/Fedora/RPMS/guile-devel-1.6.7-2.i386.rpm

Retrieving http://download.fedora.redhat.com/pub/fedora/linux/core/4/i386/os/Fedora/

RPMS/guile-devel-1.6.7-2.i386.rpm

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

   1:guile-devel            ########################################### [100%]

 

注意,-v 选项提供详细输出,-h 选项显示井号(#)来表示进度。如果想在从网络进行安装之前检查这个包,那么可能希望先下载,再安装。我们稍后再讨论对包进行检查,现在使用 wget 命令获得包,并从本地文件系统安装它,这一次  使用 -vh 选项。输出见清单 36

x48Linux联盟
清单 36. 从文件安装 guile-devel

 

                                     

[root@attic4 ~]# wget http://download.fedora.redhat.com/pub/fedora/\

> linux/core/4/i386/os/Fedora/RPMS/guile-devel-1.6.7-2.i386.rpm

--22:29:58--  http://download.fedora.redhat.com/pub/fedora/linux/core/4/i386/os/Fedora/

RPMS/guile-devel-1.6.7-2.i386.rpm

           => `guile-devel-1.6.7-2.i386.rpm'

Resolving download.fedora.redhat.com... 209.132.176.221

Connecting to download.fedora.redhat.com[209.132.176.221]:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 481,631 [application/x-rpm]

 

100%[====================================>] 481,631      147.12K/s    ETA 00:00

 

22:30:02 (140.22 KB/s) - `guile-devel-1.6.7-2.i386.rpm' saved [481,631/481,631]

 

[root@attic4 ~]# ls guil*

guile-devel-1.6.7-2.i386.rpm

[root@attic4 ~]# rpm -i guile-devel-1.6.7-2.i386.rpm

                              

 

没有井号,也没有消息。

重新安装 rpm

如果您亲自执行上面的命令,那么在第二次安装时会看到一个错误(如果已经安装了 guile-devel,那么在第一次就会看见),它报告 guile-devel 已经安装了。要解决这个问题,应该使用 -e 选项,在重新安装 rpm 包之前删除(清除)它,如清单 37 所示。如果意外删除了程序的某些文件,需要重新安装 rpm 包,那么也要先这么做。

x48Linux联盟
清单 37. 删除 guile-devel

 

                                     

[root@attic4 ~]# rpm -e guile-devel

 

强制安装 rpm

有时候删除一个 rpm 包是不可行的,尤其是当系统上有其他程序依赖这个程序时。例如,如果试图删除 guile 包而不是 guile-devel 包,那么可能看到清单 38 这样的输出,这说明许多已安装的包依赖 guile 包,所以删除是不可行的。

x48Linux联盟
清单 38. 试图删除 guile

 

                                     

[root@attic4 ~]# rpm -q -R guile-devel

/bin/sh

/usr/bin/guile

guile = 5:1.6.7

rpmlib(CompressedFileNames) <= 3.0.4-1

rpmlib(PayloadFilesHavePrefix) <= 4.0-1

[root@attic4 ~]# rpm -e guile

error: Failed dependencies:

        libguile-ltdl.so.1 is needed by (installed) g-wrap-1.3.4-8.i386

        libguile-ltdl.so.1 is needed by (installed) gnucash-1.8.11-3.i386

        libguile.so.12 is needed by (installed) g-wrap-1.3.4-8.i386

        libguile.so.12 is needed by (installed) gnucash-1.8.11-3.i386

        libqthreads.so.12 is needed by (installed) g-wrap-1.3.4-8.i386

        libqthreads.so.12 is needed by (installed) gnucash-1.8.11-3.i386

        guile is needed by (installed) g-wrap-1.3.4-8.i386

        guile = 5:1.6.7 is needed by (installed) guile-devel-1.6.7-2.i386

        /usr/bin/guile is needed by (installed) guile-devel-1.6.7-2.i386

 

无论如何,在这种情况下删除有依赖性的所有包是不可行的。解决方案是使用 --force 选项进行强制安装。清单 39 中演示了从为清单 36 下载的文件强制重新安装 guile-devel

Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论

分页:[1] 2 3
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 · LPI 101认证学习9-Linux安装与包管理之Debian 包管理  (2006-11-17 15:36:46)
 ·LPI 101认证学习8-Linux安装与包管理之管理共享库  (2006-11-16 15:00:44)
 · LPI 101认证学习7-Linux安装与包管理之构建和安装程序  (2006-11-15 20:55:48)
 ·LPI 101认证学习6-Linux安装与包管理之安装引导管理程序  (2006-11-14 15:01:51)
 ·LPI 101认证学习5-Linux安装与包管理之硬盘布局  (2006-11-13 15:44:28)
 ·LPI 101认证学习4-硬件和体系结构之PC扩展卡,通信设备和USB设备  (2006-11-12 13:39:26)
 ·LPI 101认证学习3-硬件和体系结构之设置 SCSI 设备  (2006-11-11 13:44:55)
 ·LPI 101认证学习2-硬件和体系结构之调治解调器和声卡  (2006-11-10 13:47:00)
 ·LPI 101认证学习1-硬件和体系结构之基BIOS设置  (2006-11-09 14:39:48)