Linux 应用基础教程--CH04_包管理与系统更新
本章内容要点,RPM 包管理 YUM更新系统,2018年11月24日,1,Creative Commons License(BY-NC-SA),本章学习目标,安装和删除RPM软件包 软件包查询和状态验证 用 yum 管理软件包 了解 yum 和 rpm 之间的关系 配置 yum,使之连接到更多YUM仓库 生成本地 yum 库,2018年11月24日,2,Creative Commons License(BY-NC-SA),RPM包管理,2018年11月24日,3,Creative Commons License(BY-NC-SA),RPM概述,RPM 最早是由 Red Hat 公司提出的软件包管理标准,最初的全称是 Red Hat Package Manager。 后来随着版本的升级又融入了许多其他的优秀特性, 成为了Linux中公认的软件包管理标准。 被许多Linux发行使用,如:RHEL/CentOS/Fedora, SLES/openSUSE 等。 如今RPM是RPM Package Manager的缩写,由RPM社区(http:/www.rpm.org/)负责维护。,2018年11月24日,Creative Commons License(BY-NC-SA),4,RPM的优点,易于安装、升级便利 丰富的软件包查询功能 软件包内容校验功能 支持多种硬件平台,2018年11月24日,Creative Commons License(BY-NC-SA),5,RPM的五大功能,安装将软件从包中解出来,并安装到硬盘。 卸载将软件从硬盘清除。 升级替换软件的旧版本。 查询查询软件包的信息。 验证检验系统中的软件与包中软件的区别。,2018年11月24日,Creative Commons License(BY-NC-SA),6,RPM 组件,本地数据库 rpm及其相关的可执行文件 RPM 前端工具,如 yum 软件包文件,2018年11月24日,Creative Commons License(BY-NC-SA),7,RPM包的名称格式,name:软件的名称 version:软件的版本号 type:包的类型 i345686:在Intel x86计算机平台上编译的 x86_64:在Intel x86_64计算机平台上编译的 sparc/ alpha :在sparc / alpha计算机平台上编译的 src:软件源代码 rpm:文件扩展名,2018年11月24日,Creative Commons License(BY-NC-SA),8,name-version.type.rpm 如:zsh-3.0.5-15.i386,x86_64,src.rpm,获得RPM包,从发行套件的CD中查找 从软件的主站点查找下载 从http:/www.rpmfind.net查找下载 从http:/atrpms.net/查找下载 从http:/rpm.pbone.net/查找下载,2018年11月24日,Creative Commons License(BY-NC-SA),9,安装、升级和删除软件,输出选项: -v:安装时显示软件名称 -h:使用“#”显示进度 rpmfile 的URL支持 ftp:/ http:/,2018年11月24日,Creative Commons License(BY-NC-SA),10,安装:rpm -i|-install 升级:rpm -U|-upgrade 刷新:rpm -F|-freshen 删除:rpm -e|-erase ,RPM的基本查询,查询已安装的所有软件包 rpm -qa 查询软件包是否安装并查看软件包的版本 rpm -q 查询软件包信息 rpm -qi rpm -qip 查询软件包中所有文件的名称 rpm -ql rpm -qlp 查询磁盘上的文件是从何软件包安装的 rpm -qf ,2018年11月24日,Creative Commons License(BY-NC-SA),11,RPM的更多查询,查询依赖于一个已安装软件包的所有RPM包 rpm -q -whatrequires 查询一个已安装软件包的依赖要求 rpm -q -requires 查询一个已安装软件包的安装、删除脚本 rpm -q -scripts 查询与一个已安装软件包相冲突的RPM包 rpm -q -conflicts 查询一个已安装软件包的变更日志 rpm -q -changelog ,2018年11月24日,Creative Commons License(BY-NC-SA),12,RPM校验,校验有已安装的所有软件包 rpm -Va 校验指定的软件包 rpm -V 校验指定的RPM包文件 rpm -Vp 验证包含指定文件的软件包 rpm -Vf ,2018年11月24日,Creative Commons License(BY-NC-SA),13,RPM包的公钥和签名,导入RPM包的公钥 格式:rpm -import 例如 # rpm -import /etc/pki/rpm-gpg/RPM-GPG-* # rpm -import http:/apt.sw.be/RPM-GPG-KEY.dag.txt 检查指定RPM包的数字签名 rpm -K ,2018年11月24日,Creative Commons License(BY-NC-SA),14,YUM更新系统,2018年11月24日,15,Creative Commons License(BY-NC-SA),软件包管理与系统更新,使用软件更新系统的目的 为了要解决安装RPM时的依赖性问题 常见的基于RPM的更新系统 Red Hat Network Red Hat 的企业级更新系统 yum Fedora, CentOS zypp openSUSE urpmi Mandriva APT-RPM PCLinuxOS, ALT Linux,2018年11月24日,Creative Commons License(BY-NC-SA),16,其他Linux发行的更新软件,apt Debian, Ubuntu slackpkg Slackware emerge Gentoo pacman Arch conary rPath, Foresight,2018年11月24日,Creative Commons License(BY-NC-SA),17,YUM简介,yum 是 Yellow dog Updater, Modified 的简称,用 python 写成。 yum 的宗旨是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决。 yum 是 rpm 的前端程序 ,RHEL 的 up2date 的替代工具。 yum 的关键之处是要有可靠的 repository(软件仓库) 可以是 http 或 ftp 站点,也可以是本地软件池 包含rpm 包的各种信息(包括描述,功能,提供的文件,依赖性等) yum 正是由于对收集的这些 header并加以分析,才能自动化地完成安装/更新/删除等任务,2018年11月24日,Creative Commons License(BY-NC-SA),18,yum 的特点,便于管理大量系统的更新问题 自动解决包的倚赖性问题能更方便的 添加/删除/更新 RPM包 可以同时配置多个资源库(Repository) 可以在多个库之间定位软件包 简洁的配置文件 /etc/yum.conf 和 /etc/yum.repos.d/*.repo 保持与RPM数据库的一致性 有一个比较详细的log,可以查看何时升级安装了什么软件包等,2018年11月24日,Creative Commons License(BY-NC-SA),19,YUM组件,YUM命令 通过yum命令使用YUM提供的众多功能。 由名为“yum”软件包提供(默认已安装)。 YUM软件的主页为http:/linux.duke.edu/yum/。 YUM插件 由官方或第三方开发的YUM插件用于扩展YUM的功能。 通常由以名为“yum -”的软件包提供。 YUM仓库 YUM缓存,2018年11月24日,Creative Commons License(BY-NC-SA),20,常用的YUM插件,yum-priorities:设置多个仓库的使用优先级别 yum-versionlock:用于锁定某软件的版本,以免更新 yum-changelog:查看包更新前后的改变 yum-aliases:为yum命令使用别名 yum-security:为YUM提供安全过滤器,2018年11月24日,Creative Commons License(BY-NC-SA),21,YUM仓库和镜像站点,2018年11月24日,22,Creative Commons License(BY-NC-SA),YUM仓库,YUM仓库(repository)亦称“更新源”。 一个YUM软件仓库就是一个包含了仓库数据的存放众多RPM文件的目录。 YUM仓库数据通常存放在名为“repodata”的子目录中。 YUM客户通过访问YUM仓库数据进行分析并完成查询、安装、更新等操作。 YUM客户可以使用http:/、ftp:/ 或file:/(本地文件)协议访问YUM仓库。 YUM客户可以使用官方和第三方提供的众多YUM仓库更新系统。 createrepo、yum-utils等软件包(默认未安装)中提供了YUM仓库管理工具。,2018年11月24日,Creative Commons License(BY-NC-SA),23,CentOS 的镜像站点,CentOS 的 YUM仓库 位于 CentOS 的镜像站点。 用 yum 命令可以通过 FTP 或 HTTP 访问远程 YUM仓库。 镜像站点的第一级目录是发行版本号,如 3、4、5 等。 CentOS 镜像站点的版本号为5的YUM仓库。 addons/:本目录包含 CentOS 的 addons 仓库 centosplus/:本目录包含 CentOS 的 centosplus 仓库 extras/:本目录包含 CentOS 的 extras 仓库 fasttrack/:本目录包含 CentOS 的 fasttrack 仓库 isos/:本目录包含发行版的 CD/ DVD isos 下载文件 os/:本目录包含发行版(distributions)的仓库 updates/:本目录包含 CentOS 的 updates 仓库,2018年11月24日,Creative Commons License(BY-NC-SA),24,CentOS 仓库的目录结构,|- SRPMS # 源代码目录 | |- *.src.rpm # 源代码包文件 | - repodata # 源代码的索引文件 |- i386 # Intel 32位平台目录 | |- RPMS # Intel 32位平台的RPMS目录 | | |- *.i386.rpm # 在Intel 32位平台上编译的包文件 | | - *.centos.noarch.rpm # 与平台无关的已编译的包文件 | - repodata/ # Intel 32位平台的索引文件 - x86_64 # 64位平台目录 |- RPMS # 64位平台的RPMS目录 | |- *.x86_64.rpm # 在64位平台上编译的包文件 | - *.centos.noarch.rpm # 与平台无关的已编译的包文件 - repodata/ # 64位平台的索引文件,2018年11月24日,C