LinuxRPM和YUM包管理完全指南

上传人:平*** 文档编号:12777572 上传时间:2017-10-20 格式:DOCX 页数:37 大小:113KB
返回 下载 相关 举报
LinuxRPM和YUM包管理完全指南_第1页
第1页 / 共37页
LinuxRPM和YUM包管理完全指南_第2页
第2页 / 共37页
LinuxRPM和YUM包管理完全指南_第3页
第3页 / 共37页
LinuxRPM和YUM包管理完全指南_第4页
第4页 / 共37页
LinuxRPM和YUM包管理完全指南_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《LinuxRPM和YUM包管理完全指南》由会员分享,可在线阅读,更多相关《LinuxRPM和YUM包管理完全指南(37页珍藏版)》请在金锄头文库上搜索。

1、在本文中,学习如何在 Linux 系统上使用 RPM 和 YUM 包管理工具管理包。学习:1. 使用 RPM 和 YUM 安装、卸载、升级和删除包2. 获取版本、状态、依赖关系、完整性和签名等 RPM 包相关信息3. 判断一个包提供哪些文件,查明某个文件来自哪个包先决条件为了最有效地利用本系列中的文章,您应该具有基本的 Linux 知识,并需要准备一个 Linux 系统用于练习本文介绍的命令。有时候不同版本的程序输出格式不同,因此您所得到的结果未必总是与这里所示的清单和图相同,特别是许多输出高度依赖于系统上已经安装的包。您自己的输出可能很不一样,但是应该能够看出重要的共同点。包管理简介过去,许

2、多 Linux 程序以源代码的形式发行,用户把源代码构建为所需的程序或程序集;源代码还附带必需的手册页、配置文件等等。现在,大多数 Linux 发行商使用称为包 的预构建的程序或程序集,包便于在发行版上安装。在本文中,学习帮助安装、更新和删除包的包管理 工具。本文主要关注 Red Hat 开发的 Red Hat Package Manager (RPM),以及 Duke University 物理系最初为管理 Red Hat Linux 系统开发的 Yellowdog Updater Modified (YUM)。从用户的角度来说,基本的包管理功能由命令提供。Linux 开发人员一直致力于让

3、Linux 更容易使用,他们开发了其他工具(包括 GUI 工具)来补充基本工具,这对最终用户隐藏了基本工具的一部分复杂性。在本文和 学习 Linux,101:Debian 包管理 中,我们主要讨论基本工具,但是也会提到一些其他工具,让您能够继续研究它们。RPM、YUM 和 APT(适用于 Debian 系统)有许多相似之处。它们都可以安装和删除包。关于安装的包的信息保存在数据库中。它们都有基本的命令行功能,同时通过其他工具提供对用户更友好的界面。它们都可以从 Internet 获取包。在安装 Linux 系统时,通常会安装许多包。这个集合可能是根据系统的用途定制的,比如服务器、桌面或开发工作站

4、。有时候,可能需要安装新的包以添加新功能,更新现有的包,甚至删除不再需要或已经被新的包取代的包。我们来看看如何完成这些任务以及如何解决一些相关的难题,比如寻找包含某一命令的包。RPMRed Hat 于 1995 年引入了 RPM。RPM 现在是 Linux Standard Base (LSB) 中采用的包管理系统。rpm 命令选项分为三组:1. 用于查询和检查包2. 用于安装、升级和删除包3. 用于执行其他功能在本文中,我们主要关注前两组命令选项。在 RPM 的手册页中可以找到其他功能的相关信息。还应该注意 rpm 是操作 RPM 的主要命令,而 .rpm 是 RPM 文件使用的扩展名。所以

5、 “一个 rpm” 或 “某某 rpm” 一般是指 RPM 文件,而 rpm 通常指命令。YUMYUM 在 RPM 系统中增加了自动更新和包管理,包括依赖关系管理。与 Debian Advanced Packaging Tool (APT) 一样,除了了解系统上安装的包之外,YUM 还使用存储库。存储库是包的集合,通常可以通过网络连接访问它们。安装 RPM 包假设您想学 Lisp,一位同事让您使用 gcl 命令。您试着输入 gcl -help、which gcl 或 type gcl。但是,如果系统无法找到 gcl,您可能会看到与清单 1 相似的输出。清单 1. 没有找到 gcl 命令iane

6、chidna $ gcl -helpbash: gcl: command not foundianechidna $ which gcl/usr/bin/which: no gcl in (/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ian/bin)ianechidna $ type gclbash: type: gcl: not found您可能会问同

7、事要安装哪个包,也可能猜想 gcl 命令应该在 gcl 包中。这种猜测常常是对的,但是也不总是。我们稍后会看到如何寻找正确的包。在这里,需要 gcl 包。假设您已经下载或以其他方式获得了这个包的拷贝,可以使用带 -i(代表安装)选项的 rpm 命令安装它,见清单 2。清单 2. 用 rpm 安装 gcl 第一次尝试rootechidna # rpm -i gcl-2.6.8-0.6.20090701cvs.fc12.x86_64.rpmerror: Failed dependencies:gcl-selinux is needed by gcl-2.6.8-0.6.20090701cvs.fc

8、12.x86_64rpm 命令知道这个包有一个依赖包,但是它并不帮助您解决依赖问题。您需要自己获取依赖包,然后再次尝试,看看是否还有其他依赖包 重复这个过程,直到满足所有依赖关系为止。好消息是,可以向 rpm 命令提供要安装的包的列表,如果满足所有依赖关系,它会以正确的次序安装所有包。因此,您至少不必以正确的次序手工安装每个包。如果您使用过 Debian 的 APT,可能希望有像 apt-get 命令一样的功能, apt-get 命令会寻找需要的东西(包括依赖包)并安装它们。对于基于 RPM 的系统,YUM (Yellowdog Updater Modified) 提供这种功能。清单 3 说明

9、如何使用带 install 选项的 yum 命令安装 gcl 和必需的 gcl-selinux 包。清单 3. 使用 yum 安装 gclrootechidna # yum install gclLoaded plugins: presto, refresh-packagekitSetting up Install ProcessResolving Dependencies Running transaction check- Package gcl.x86_64 0:2.6.8-0.7.20100201cvs.fc12 set to be updated Processing Depende

10、ncy: gcl-selinux for package: gcl-2.6.8-0.7.20100201cvs.fc12.x86_64 Running transaction check- Package gcl-selinux.x86_64 0:2.6.8-0.7.20100201cvs.fc12 set to be updated Finished Dependency ResolutionDependencies Resolved=Package Arch Version Repository Size=Installing:gcl x86_64 2.6.8-0.7.20100201cv

11、s.fc12 updates 6.3 MInstalling for dependencies:gcl-selinux x86_64 2.6.8-0.7.20100201cvs.fc12 updates 17 kTransaction Summary=Install 2 Package(s)Upgrade 0 Package(s)Total download size: 6.4 MInstalled size: 40 MIs this ok y/N: yDownloading Packages:Setting up and reading Presto delta metadataupdate

12、s/prestodelta | 964 kB 00:01 Processing delta metadataPackage(s) data still to download: 6.4 M(1/2): gcl-2.6.8-0.7.20100201cvs.fc12.x86_64.rpm | 6.3 MB 00:12 (2/2): gcl-selinux-2.6.8-0.7.20100201cvs.fc12.x86_64.rpm | 17 kB 00:00 -Total 398 kB/s | 6.4 MB 00:16 Running rpm_check_debugRunning Transacti

13、on TestTransaction Test SucceededRunning TransactionInstalling : gcl-selinux-2.6.8-0.7.20100201cvs.fc12.x86_64 1/2 Installing : gcl-2.6.8-0.7.20100201cvs.fc12.x86_64 2/2 Installed:gcl.x86_64 0:2.6.8-0.7.20100201cvs.fc12 Dependency Installed:gcl-selinux.x86_64 0:2.6.8-0.7.20100201cvs.fc12 Complete!清单

14、 3 中的输出表明,YUM 在名为 “updates” 的存储库中找到了 gcl.x86_64 0:2.6.8-0.7.20100201cvs.fc12 和 gcl-selinux.x86_64 0:2.6.8-0.7.20100201cvs.fc12(稍后详细讨论),并判断出总下载大小。按 “y” 同意之后,它下载这两个包,然后安装依赖包,最后安装 gcl。在本文后面会进一步讨论依赖关系。包的位置在前一节中,学习了如何安装 RPM 包。但是,包来自什么地方呢? yum 如何知道从哪里下载包?起点是 /etc/yum.repos.d/ 目录,这个目录常常包含几个 repo 文件。这是 repo 的默认位置,但是可以在 YUM 配置文件

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号