521yum简介 在 RedHat Enterprise Linux(RHEL从50版开始采用yum)、 CentOS和 Fedora等发行 版中,采用了一种叫做yum的软件包管理工具。Yum( Yellow dog Updater Modified)用 python 语言写成。yum的宗旨是收集rpm软件包的相关信息,检查依赖关系,自动化的升级、安 装、删除rpm软件包 yum的关键之处是要有可靠的 repository(仓库), repository管理一部分甚至一个 Linux 发行版的应用程序的依赖关系,根据计算出来的依赖关系进行相关软件包的升级、安装、删 除等操作,解决了LinI用户一直头痛的依赖关系问题。 repository可以是ht或fp站点,也可以是本地软件池,但必须包含rpm的 header, header 包括了rpm包的各种信息,包括描述、功能、提供的文件、依赖性等。正是收集了这些 header 并加以分析,才能自动化地完成升级、安装软件包等任务。 522yum的使用 实例5-5yum的使用 认识yum的配置文件 yum.conf 如图5-14所示,yum的全局性配置信息都储存在配置文件/ etc/yum.conf中,对其中配 置参数的说明如下 cachedir;yum缓存的目录,yum将下载的rpm软件包存放在 cachedir指定的目录。 debuglevel:除错级别,0-10,默认是2 logfile:yum的日志文件。 pkgpolicy:包的策略,一共有两个选项, newest和last, pkgpolicy的作用是如果设置了 多个 repository,而同一软件在不同的 repository中同时存在,yum应该安装哪一个呢?如果 是 newest,那么yum会安装最新的那个版本;如果是last,那么yum会将服务器id以字母 表排序,并选择最后那个服务器上的软件安装。默认是 newest distroverpkg:指定一个软件包,yum会根据这个包判断你的发行版本,默认是 redhat- release,也可以是安装的任何针对自己发行版的rpm包 tolerent:有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,如 果设为1,那么yum不会出现错误信息。默认是0。 exactarch:有1和0两个选项,表示是否只升级和要安装的软件包的cpu体系一致的包 如果设为1,并且已经安装了一个i386的rpm,那么yum不会用i686的包来升级 修改yum源( repository) 首先将/ etc/yum. repos. d下的文件都移到备份目录里,然后在/ etc/yum. repos. d目录中创建 etc/yum. repos. d/ centos-5repo文件,如图5-15所示。所有 repository的设置都遵循如下格式: updates name=CentOS-5-Updates baseurl=http://mirror.tini4u.net/centos/5.2/updates/sbasearch/ gpgcheck=l gpgkey=http://mirror.tini4u.net/centos/rpm-gpg-key-centos-5
5.2.1 yum 简介 在 RedHat Enterprise Linux(RHEL 从 5.0 版开始采用 yum)、CentOS 和 Fedora 等发行 版中,采用了一种叫做 yum 的软件包管理工具。Yum(Yellow dog Updater Modified)用 python 语言写成。yum 的宗旨是收集 rpm 软件包的相关信息,检查依赖关系,自动化的升级、安 装、删除 rpm 软件包。 yum 的关键之处是要有可靠的 repository(仓库),repository 管理一部分甚至一个 Linux 发行版的应用程序的依赖关系,根据计算出来的依赖关系进行相关软件包的升级、安装、删 除等操作,解决了 Linux 用户一直头痛的依赖关系问题。 repository可以是http或ftp站点,也可以是本地软件池,但必须包含rpm的header,header 包括了 rpm 包的各种信息,包括描述、功能、提供的文件、依赖性等。正是收集了这些 header 并加以分析,才能自动化地完成升级、安装软件包等任务。 5.2.2 yum 的使用 实例 5-5 yum 的使用 认识 yum 的配置文件 yum.conf 如图 5-14 所示,yum 的全局性配置信息都储存在配置文件/etc/yum.conf 中,对其中配 置参数的说明如下: cachedir:yum 缓存的目录,yum 将下载的 rpm 软件包存放在 cachedir 指定的目录。 debuglevel:除错级别,0—10,默认是 2。 logfile:yum 的日志文件。 pkgpolicy:包的策略,一共有两个选项,newest 和 last,pkgpolicy 的作用是如果设置了 多个 repository,而同一软件在不同的 repository 中同时存在,yum 应该安装哪一个呢?如果 是 newest,那么 yum 会安装最新的那个版本;如果是 last,那么 yum 会将服务器 id 以字母 表排序,并选择最后那个服务器上的软件安装。默认是 newest。 distroverpkg:指定一个软件包,yum 会根据这个包判断你的发行版本,默认是 redhat-release,也可以是安装的任何针对自己发行版的 rpm 包。 tolerent:有 1 和 0 两个选项,表示 yum 是否容忍命令行发生与软件包有关的错误,如 果设为 1,那么 yum 不会出现错误信息。默认是 0。 exactarch:有 1 和 0 两个选项,表示是否只升级和要安装的软件包的 cpu 体系一致的包, 如果设为 1,并且已经安装了一个 i386 的 rpm,那么 yum 不会用 i686 的包来升级。 修改 yum 源(repository) 首先将/etc/yum.repos.d 下的文件都移到备份目录里,然后在/etc/yum.repos.d 目录中创建 /etc/yum.repos.d/centos-5.repo 文件,如图 5-15 所示。所有 repository 的设置都遵循如下格式: [updates] name=CentOS-5-Updates baseurl=http://mirror.tini4u.net/centos/5.2/updates/$basearch/ gpgcheck=1 gpgkey=http://mirror.tini4u.net/centos/RPM-GPG-KEY-CentOS-5
其中: updates是用于区别各个不同的 repository,必须有一个独一无二的名称。 name是对 repository的描述。 baseurl是服务器设置中最重要的部分,只有设置正确,才能获取软件包。它的格式是: baseurl=url: //server 1/path/to/repository/ url: //server 2/path/to/repository/ url: //server 3/path/to/repository/ 其中url支持的协议有htp!∥、ftp/和fle∥三种。 baseurl后可以跟多个url,可以改为 速度比较快的镜像站点,但是 baseurl只能有一个,也就是说不能像如下格式: 1/path/ seurl-u baseurl=url: //server 3/path/to/repository/ 其中url指向的目录必须是这个 repository目录(即“ repodata”目录)的父目录,它也 支持$ releasever$ basearch这样的变量。$ releaser是指当前发行版的版本。$ basearch是指 cpu体系,如i386体系、 alpha体系。 每个镜像站点中" repodata”文件夹的路径可能不一样,设置 baseurl之前一定要首先登录相 应的镜像站点,查看" repodata”文件夹所在的位置,然后才能设置 baseurl。 ur之后可以加上多个选项,如 gpgcheck、 enable等,其中 gpgcheck,的含义和main 部分相同,但只对此服务器起作用;在 repository的描述文件中设置 enable=0可以禁止yum 使用这个 repository。如果没有使用 enable选项,那么相当于 enable=l。 第4步:导入key 使用yum之前,先要导入每个 repository的 GPG key,yum使用GPG对软件包进行校 验,确保下载包的完整性,所以要到各个 repository站点找到 GPG key文件,文件名一般是 RPM-GPG- KEY tXt之类的文本文件,将他们下载,然后用rpm- Import xXX. txt命令将他们导 入,也可以执行如下命令导入 GPG key #rpm--importhttp://mirror.tini4u.net/centos/rpm-gpg-key-centos-5 其中“ht/ mirror tini4 u.net/centos/RPM-GPG-KEY-Centos-5”是 GPG key文件URL 第5步:使用yum yum的基本操作包括软件的安装(本地、网络),升级(本地、网络),卸载,查询。 (1)用yum安装、删除软件 用yum安装、删除软件的命令见表5-7 如果要使用yum安装 firefox,可以执行命令: yum install firefox 如果本地有rpm软件包,比如 xxx. rpm,可以执行# yum localinstall xxx rpm命令来安装 注意 如果不是root,可以执行su- c yum install firefox命令 (2)用yum检查、升级软件 用yum检查、升级软件的命令见表5-8
其中: updates 是用于区别各个不同的 repository,必须有一个独一无二的名称。 name 是对 repository 的描述。 baseurl 是服务器设置中最重要的部分,只有设置正确,才能获取软件包。它的格式是: baseurl=url://server1/path/to/repository/ url://server2/path/to/repository/ url://server3/path/to/repository/ 其中 url 支持的协议有 http://、ftp://和 file://三种。baseurl 后可以跟多个 url,可以改为 速度比较快的镜像站点,但是 baseurl 只能有一个,也就是说不能像如下格式: baseurl=url://server1/path/to/repository/ baseurl=url://server2/path/to/repository/ baseurl=url://server3/path/to/repository/ 其中 url 指向的目录必须是这个 repository 目录(即“repodata”目录)的父目录,它也 支持$releasever $basearch 这样的变量。$releasever 是指当前发行版的版本。$basearch 是指 cpu 体系,如 i386 体系、alpha 体系。 注意: 每个镜像站点中“repodata”文件夹的路径可能不一样,设置 baseurl 之前一定要首先登录相 应的镜像站点,查看“repodata”文件夹所在的位置,然后才能设置 baseurl。 url 之后可以加上多个选项,如 gpgcheck、enable 等,其中 gpgcheck,的含义和[main] 部分相同,但只对此服务器起作用;在 repository 的描述文件中设置 enable=0 可以禁止 yum 使用这个 repository。如果没有使用 enable 选项,那么相当于 enable=1。 第 4 步:导入 key 使用 yum 之前,先要导入每个 repository 的 GPG key,yum 使用 GPG 对软件包进行校 验,确保下载包的完整性,所以要到各个 repository 站点找到 GPG key 文件,文件名一般是 RPM-GPG-KEY.txt 之类的文本文件,将他们下载,然后用 rpm --import xxx.txt 命令将他们导 入,也可以执行如下命令导入 GPG key: #rpm --import http://mirror.tini4u.net/centos/RPM-GPG-KEY-CentOS-5 其中“http://mirror.tini4u.net/centos/RPM-GPG-KEY-CentOS-5”是 GPG key 文件 URL。 第 5 步:使用 yum yum 的基本操作包括软件的安装(本地、网络),升级(本地、网络),卸载,查询。 (1)用 yum 安装、删除软件 用 yum 安装、删除软件的命令见表 5-7。 如果要使用 yum 安装 firefox,可以执行命令:yum install firefox。 如果本地有 rpm 软件包,比如 xxx.rpm,可以执行# yum localinstall xxx.rpm 命令来安装。 注意: 如果不是 root,可以执行 su -c 'yum install firefox'命令。 (2)用 yum 检查、升级软件 用 yum 检查、升级软件的命令见表 5-8
(3)用yum搜索、查询软件 用yum搜索、查询软件的命令见表5-9 (4)清除yum缓存 yum会把下载的软件包和 header存储在 cache中,而不会自动删除。如果觉得他们占 用了磁盘空间,可以对他们进行清除。清除yum缓存的命令见表5-10。 注意 不建议yum在开机时自动运行,因为它会让系统的速度变慢,可以执行 ntsysv命令,在出现 的TUI(文本用户窗口)中取消yum即可,如果需要更新软件包,可以采用手动更新
(3)用 yum 搜索、查询软件 用 yum 搜索、查询软件的命令见表 5-9。 (4)清除 yum 缓存 yum 会把下载的软件包和 header 存储在 cache 中,而不会自动删除。如果觉得他们占 用了磁盘空间,可以对他们进行清除。清除 yum 缓存的命令见表 5-10。 注意: 不建议 yum 在开机时自动运行,因为它会让系统的速度变慢,可以执行 ntsysv 命令,在出现 的 TUI(文本用户窗口)中取消 yum 即可,如果需要更新软件包,可以采用手动更新