本节主要介绍基于Red Had的系统(测试系统centos)html
yum是CentOS/Fedora系统自带的,所以它能使用CentOS官方的软件源,完成各类官方发布的各类升级。对于第三方软件源的支持,yum也不差,大多数支持apt的repository,也能支持yum 。linux
yum主要功能是更方便的添加/删除/更新RPM包,自动解决包的倚赖性问题,便于管理大量系统的更新问题。正则表达式
yum能够同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增长或删除rpm包时遇到的依赖性问题,保持与RPM数据库的一致性。数据库
1.1 查看系统默认安装的yumvim
yum的基础安装包包括:centos
1.2 yum仓库浏览器
yum 是linux环境安装软件包的一种方式。不少时候安装一个软件安装一个软件须要安装1个或者多个其余软件。缓存
yum仓库用来存放全部的现有的.rpm包,当使用yum安装一个rpm包时,须要依赖关系,会自动在仓库中查找依赖软件并安装。仓库能够是本地的,也能够是HTTP、FTP、nfs形式使用的集中地、统一的网络仓库 。服务器
若是你的linux环境不能访问外网,那你装yum没有意义,由于他须要访问http的仓库里面的。固然若是你有本地仓库,就把/etc/yum.repos.d改一下地址就能够。
1.3 安装yum
能够经过wget从网上下载相关包安装,也能够挂载系统安装光盘进行安装。
命令 | 功能 |
---|---|
yum check-update | 检查可更新的全部软件包 |
yum update | 下载更新系统已安装的全部软件包 |
yum upgrade | 大规模的版本升级,与yum update不一样的是,连旧的淘汰的包也升级 |
yum install <packages> | 安装新软件包 |
yum update <packages> | 更新指定的软件包 |
yum remove <packages> | 卸载指定的软件包 |
yum groupinstall <groupnames> | 安装指定软件组中的软件包 |
yum groupupdate <groupnames> | 更新指定软件组中的软件包 |
yum groupremove <groupnames> | 卸载指定软件组中的软件包 |
yum grouplist | 查看系统中已经安装的和可用的软件组 |
yum list | 列出资源库中全部能够安装或更新以及已经安装的rpm包 |
yum list <regex> | 列出资源库中与正则表达式匹配的能够安装或更新以及已经安装的rpm包 |
yum list available | 列出资源库中全部能够安装的rpm包 |
yum list available <regex> | 列出资源库中与正则表达式匹配的全部能够安装的rpm包 |
yum list updates | 列出资源库中全部能够更新的rpm包 |
yum list updates <regex> | 列出资源库中与正则表达式匹配的全部能够更新的rpm包 |
yum list installed | 列出资源库中全部已经安装的rpm包 |
yum list installed <regex> | 列出资源库中与正则表达式匹配的全部已经安装的rpm包 |
yum list extras | 列出已经安装的可是不包含在资源库中的rpm包 |
yum list extras <regex> | 列出与正则表达式匹配的已经安装的可是不包含在资源库中的rpm包 |
yum list recent | 列出最近被添加到资源库中的软件包 |
yum search <regex> | 检测全部可用的软件的名称、描述、概述和已列出的维护者,查找与正则表达式匹配的值 |
yum provides <regex> | 检测软件包中包含的文件以及软件提供的功能,查找与正则表达式匹配的值 |
yum clean headers | 清除缓存中的rpm头文件 |
yum clean packages | 清除缓存中rpm包文件 |
yum clean all | 清除缓存中的rpm头文件和包文件 |
yum deplist <packages> | 显示软件包的依赖信息 |
3.1 说明:yum的配置文件分为两部分:main和repository
YUM的工做原理并不复杂,每个RPM软件的头(header)里面都会纪录该软件的依赖关系,那么若是能够将该头的内容纪录下来而且进行分析,能够知道每一个软件在安装以前须要额外安装哪些基础软件。也就是说,在服务器上面先以分析工具将全部的RPM档案进行分析,而后将该分析纪录下来,只要在进行安装或升级时先查询该纪录的文件,就能够知道全部相关联的软件。因此
YUM的基本工做流程以下:
3.2 yum.conf文件详解
3.3 yum.repos.d文件详解
在.repo文件中,配置语法是分段的,每一段配置一个软件仓库,配置语法以下:
[repositoryid] name=Some name for this repository baseurl=url://server1/path/to/repository/ url://server2/path/to/repository/ url://server3/path/to/repository/ mirrorlist=url://path/to/mirrorlist/repository/ enabled=0/1 gpgcheck=0/1 gpgkey=A URL pointing to the ASCII-armoured GPG key file for the repository
在name baseurl中常用以下的变量:
baseurl : 用于指定本仓库的URL, #从服务器获取软件的路径,只有设置正确,才能从上面获取软件。
基本格式是:
baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/
url://server3/path/to/repository/
baseurl后能够跟多个url,你能够本身改成速度比较快的镜像站,但baseurl只能有一个,其中url指向的目录必须是这个repositoryheader目录的上一级,它也支持$releasever$basearch这样的变量。其中url支持的协议有http://ftp://file://三种:
3.3.1 设置网络更新源
下面是一个CentOS-Base.repo文件的实例,在此文件中没有设置mirrorlist ,使用baseurl只指定了一个URL。
[base] name=CentOS-$releasever - Base baseurl=http://centos.candishosting.com.cn/$releasever/os/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 [updates] name=CentOS-$releasever - Updates baseurl=http://centos.candishosting.com.cn/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 [addons] name=CentOS-$releasever - Addons baseurl=http://centos.candishosting.com.cn/$releasever/addons/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 [extras] name=CentOS-$releasever - Extras baseurl=http://centos.candishosting.com.cn/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 [centosplus] name=CentOS-$releasever - Plus baseurl=http://centos.candishosting.com.cn/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
3.3.2 设置本地更新源
为了使用安装光盘做为更新源,能够修改CentOS-Media.repo 文件,下面是一个配置实例。
[c5-media] name=CentOS-$releasever - Media baseurl=file:///media/CentOS/ file:///media/cdrom/ file:///media/cdrecorder/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-beta
4.1 设置yum本地源:
[root@localhost /]# vim /etc/yum.repos.d/local.repo # 配置yum本地源
[local #] name = local yum baseurl = file://mnt #设置本地源文件 gpgcheck=0 enabled=1
测试:
使用rpm安装的时候,会提示依懒性关系,须要依序一步一步才能安装。
使用yum安装的时候,直接安装完成。
为何rpm在路径/mnt/Packages下就不能自行处理依懒性关系, 而yum在路径/mnt/ 就能够的呢?
缘由是由于yum先读取配置文件里的信息 baseurl = file://mnt 查找本地源,
重点还要查找一个依懒性文件(早已写好依赖性关系)repodata, 找到须要的全部的安装包文件
.....