资源预览内容
第1页 / 共35页
第2页 / 共35页
第3页 / 共35页
第4页 / 共35页
第5页 / 共35页
第6页 / 共35页
第7页 / 共35页
第8页 / 共35页
第9页 / 共35页
第10页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
软件包管理 本章描述如何使用图形化和命令行工具来管理 Red Hat Linux 系统上的 RPM 软件包 。本章的学习目标: 理解RPM如何进行软件的管理 了解RPM的设计目标 学会使用rpm命令及其参数选项 学会检查软件包的签名 理解整个制作RPM软件包的过程 了解Red Hat网络使用 RPM 来管理软件包RPM 软件包管理器(RPM)是开放打包系统,任何 人都可以使用。它在 Red Hat Linux,以及其它 Linux 和 UNIX 系统上运行。对于终端用户来说,RPM 简化 了系统更新。安装、删除安装、升级 RPM 软件包可 以使用简短的命令就可完成。RPM 维护一个已安装软 件包和它们的文件数据库,因此,可以在系统上使用 功能强大的查询和校验。 对于开发者来说,RPM允许把软件编码和程序打包, 然后提供给终端用户。 RPM 的设计目标可升级性使用 RPM,可以不必全盘重装就可以在系 统上升级个别组件。当得到一个基于 RPM 的操作 系统的新发行版本(如 Red Hat Linux),不必重 新安装系统。 强大的查询功能RPM 被设计来提供强大的查询功能。 可以在整个数据库中搜索软件包或某些特定文件。 还可以轻易地了解到哪个文件属于哪个软件包,软 件包来自哪里。 3. 系统校验RPM另一项强大的功能是软件包校验。如果担心可能删 除了某软件包上的一个重要文件,只需校验该软件包即可。任何 异常情况都会向用户通知。到时,可以在必要时重装该软件包。 修改过的配置文件在重装中会被保留。 4. 纯净源码一个重要的设计目标是允许使用与软件的原创者所发 行源码一致的“纯净”软件源码。使用 RPM,会有纯 净源码、使用过的补丁、以及完整的建构指令。 RPM 有基本操作模式RPM有7种基本操作模式:安装、删除安装、升级、刷新、查询、校 验和软件包建构。这些操作都可以通过带有不同参数选项的rpm命 令来完成,例如,-q选项是查询软件包用的,用来告诉用户是否已 经安装了某个软件包;-i选项用来安装新软件包;-U选项用来把一 个已经安装好的软件包升级到新版本;-e选项用来对软件包进行卸 载操作;-qa选项用来给出所有已安装软件包的完整清单。课本上 表16-2列举出了rpm命令的参数选项集。 RMP包的名称格式 RPM包的名称有其特有的格式,如典型的 RPM 软 名称类似于: liubing-1.0-1.i386.rpm 该文件名包括软件包名称“liubing”;软件的版本“1.0” 其中包括主版本号和次版本号;“i386”是软件所运行 硬件平台;最后“rpm”做为文件的扩展名,当然代表文 件的类型为RPM包。安装RPM包命令格式: rpm i RPM包的全路径文件名 如果想安装RPM包并显示安装进度信息可使用如下命令 格式: rpm ivh RPM包的全路径文件名 在此命令的参数选项中: i:代表安装。 v:代表verbose,设置在安装过程中将显示详细的信息。 h:代表hash,设置在安装过程中将显示“# ”来表示安装的进 度。 对于较大的RPM包,在安装时尤其需要使用“-ivh”选项,这样可以 看到安装过程的相应信息,更可以了解安装的进度。1. 软件包已安装 如果某软件包的同一版本已经安装,就会看到如下的消 息。 Preparing. # 100% package foo-1.0-1 is already installed 如果在软件包已安装的情况下仍打算安装同一版本的软 件包,可以使用-replacepkgs 选项,它告诉 RPM忽略这 个错误,例如: rpm -ivh -replacepkgs foo-1.0-1.i386.rpm 如果从RPM安装的文件被删除了,或者想安装RPM中的 最初配置文件,该选项就会很有用。2. 文件冲突 如果试图安装的软件包中包含已被另一个软件包或同一 软件包的早期版本安装了的文件,会看到如下的错误消息 。 Preparing. # 100% file /usr/bin/foo from install of foo-1.0-1 conflicts with file from package bar-2.0.20 要使RPM忽略这个错误,使用 -replacefiles 选项如下: rpm -ivh -replacefiles foo-1.0-1.i386.rpm3. 未解决的依赖关系 RPM 软件包可能“依赖”于其他软件包,这意味着它们需 要安装其他软件包才能正确运行。如果试图安装具有未解 决依赖关系的软件包,会看到如下的消息。 Preparing. # 100% error: Failed dependencies:bar.so.2 is needed by foo-1.0-1Suggested resolutions:bar-2.0.20-3.i386.rpm 如果安装的是Red Hat Linux,它通常会向用户建议解决 依赖关系所需的软件包。在 Red Hat Linux 光盘或 Red Hat FTP 站点(或镜像站点)上找到这个软件包,使用以下 命令来添加。 rpm -ivh foo-1.0-1.i386.rpm bar-2.0.20-3.i386.rpm 如果这两个软件包都安装成功,会看到如下的消息。 Preparing. # 100%1:foo # 50%2:bar # 100% 如果它不向用户建议解决依赖关系所需的软件包,可以试用- redhatprovides选项来判定哪个软件包包含所需的文件。但需要安 装rpmdb-redhat软件包才能使用这个选项。例如: rpm -q -redhatprovides bar.so.2 如果包含bar.so.2的软件包在来自rpmdb-redhat软件包的安装 了的数据库中,该软件包的名称就会被显示如下: bar-2.0.20-3.i386.rpm 如果想强制安装(不是好办法,因为软件包可能不能够正确运行 ),可以使用-nodeps选项。删除 RPM包命令格式: rpm -e RPM包名称 rpm e命令用于从当前系统中删除已安装的软件包,需 要在信念中指定要删除的软件包的名称而不是安装命令 中的软件包安装文件名。(1)首先在终端上将系统中自带的输入法删除。 # rpm e miniChinput (2)进入到下载fcitx的目录(假设是/input目录) # cd /input(3)然后使用RPM命令来安装fcitx# rpm ivh fcitx-1.8.5-1.rpm (4)要让此输入法生效,还必须重新启动Linux系统。升级RPM包 命令格式 :rpm -U RPM包的全路径文件名 升级实际上是删除和安装的组合,因此,在RPM升级 中,除了遇到删除和安装中会遇到的错误外,还会看到 另一个错误。如果RPM认为试图升级到软件包的老版 本,就会看到如下的信息。 package foo-2.0-1 (which is newer than foo-1.0-1) is already installed 要使 RPM 强制“升级”,使用 -oldpackage 选项,例 如: rpm -Uvh -oldpackage foo-1.0-1.i386.rpm刷新 刷新软件包和升级软件包相似。在shell提示下输入以下命 令。 rpm -Fvh foo-1.2-1.i386.rpm RPM的刷新选项比较在命令行上指定的软件包的版本和用 户的系统上已安装的版本。当RPM的刷新选项处理的版本比 已安装的版本更新,它就会被升级到更新的版本。然而,如 果某软件包先前没有安装,RPM的刷新选项将不会安装该软 件包。这与RPM的升级选项不同,因为不管该软件包的老版 本是否已被安装,升级选项都会安装该软件包。 RPM的刷新选项可以用于单个软件包或一组软件包。如果 刚刚下载了大量不同的软件包,只想升级那些已安装在系统 上的软件包,刷新即可达到目的。如果使用刷新,不必在使 用 RPM 前从下载的软件包组中删除不必要的软件包。 在这种情况下,只使用下面的命令就可以了。 rpm -Fvh *.rpm RPM将只会自动升级那些已经在系统上安装的软件包。 查询RPM包 命令格式: rpm -q 使用 rpm -q 命令来查询安装的软件包的数据库rpm -q fcitx命令会显示安装的软件包 fcitx的名称、版本、和发行号码。1.-a: 查询所有已安装的软件包。 2.-f : 会查询拥有 的软件包。当指定文 件时,必须指定文件的完整路径(如 /usr/bin/ls)。3. -p : 查询软件包 。以下选项用来选择要搜索的信息类型。它们叫做信息 选择选项。 -i :显示软件包信息,包括名称、描述、发行版本、大 小、制造日期、生产商,以及其它杂项。 -l:显示软件包所含的文件列表。 -s:显示软件包中所有文件的状态。-d:显示被标记为文档(man 页、info 页、README 等等)的文件列表。-c:显示被标记为配置文件的文件列表。你在安装后改 变这些文件来使软件包适用于你的系统(譬如,sendmail.cf、 passwd、inittab 等等)。 6. 校验已安装的软件包 命令格式: rpm -V 校验软件包比较从某软件包安装的文件和原始 软件包中的同一文件的信息。 校验的最简单用法是 rpm -V fcitx,它校验 所有在 fcitx软件包内的文件是否和最初安装 时一样。 要校验包含某一特定文件的软件包: # rpm -Vf /bin/vi 要校验所有安装了的软件包:# rpm -Va 要根据 RPM 软件包文件来校验安装了的软件包: # rpm -Vp fcitx-1.8.5-1.rpm 单用一个 .(点)意味着测试通过。下列字符代表某类 测试失败: 5 MD5 校验和 S 文件大小L 符号链接T 文件修改时间 D 设备U 用户G 组群M 模式(包括权限和文件类型) ? 不可读文件示 例 RPM 对于管理系统、诊断和修正问题都极有用途。以下 列举几个示例。 例1:可能不小心删除了一些文件,却不能肯定删除了哪 些文件。如果想校验整个系统来看一看缺少哪些文件,可 以试一试以下的命令。 rpm -Va 如果缺少某些文件或它们似乎被损坏,可能应该重新安装 该软件包或删除安装,然后再重新安装该软件包。 例2:有时候,可能会看到不认识的文件。要发现哪个软 件包拥有它,可以输入以下命令。 rpm -qf /usr/X11R6/bin/ghostview 它的输出和以下命令相似,例如: gv-3.5.8-22例3:可以在以下的假想情况下组合以上的两个例子。假 设/usr/bin/paste出了问题,想校验拥有该程序的软件包,但 是不知道哪个软件包拥有paste。只需输入以下命令就可以 了。 rpm -Vf /usr/bin/p
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号