yum(全称为 Yellow dog Updater, Modified)yum相对于rpm来说:rpm为基础包管理器,yum则是rpm的前端工具。能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。,yum无法独立存在,系统不允许有两个yum命令同时运行,如果有两个,第二次运行时会报错。这是为了防止yum之间的冲突。
yum接收到需要安装的程序包的名称之后,通过文件共享协议(或者文件传输协议),在配置文件中指向的yum仓库(可以是多个)中查询需要的程序包。找到之后,通过文件下载协议,将程序包下载至本地yum的缓存目录中,当安装完成后,缓存目录便会被删除
但如果yum每次到yum仓库都需要遍历,就会导致速度很慢。而yum仓库中有两类数据:程序和程序的元数据。yum仓库在创建时,会将所有程序的名字、大小、版本以及依赖关系这类的属性信息提取出来并保存至repodata目录中。所以在yum第一次访问yum仓库时,会获取仓库中元数据(repodata),并下载至本地。因此,下次需要安装程序包时,只需从本地缓存中获得信息,直接到仓库下载即可
如何保持本地缓存repodata和服务器端的repodata实时同步呢?yum每次访问仓库都会先获取repodata目录中每个文件的特征码,并与本地的进行比较,如果不相同,就重新下载并覆盖
yum repository:yum repo
存储了众多的rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata);
文件服务器
URL:统一资源定制地址
ftp://
http://
nfs://
file://
yum客户端
rpm -q yum :查询本地是否安装了yum客户端,如果安装了则可以使用yum功能
rpm -qc yum :查询yum的配置文件
配置文件:
指向仓库的位置以及相关的各种配置信息。每个yum命令行可以同时指向多个仓库,仓库间可以进行优先级等相关配置,优先级是由开销决定的。
配置文件有两部分组成:主配置文件以及各仓库的配置文件。因为如果所有的配置信息都放在一个文件中就显得太臃肿、不方便。其中主配置文件所在路径为/etc/yum.conf,它为各仓库指向提供公共配置文件;而各仓库的配置文件所在路径为:/etc/yum.repos.d/*.repo,里面都是以赋值的格式存在
/etc/yum.conf:为所有仓库提供公共配置
/etc/yum.repos.d/*.repo:为仓库的指向提供配置信息
仓库指向的定义
[repositoryID]
name=some name for this repository
baseurl=url1://path/to/repository/仓库指向的路径
url2://path/to/repository/
url3://path/to/repository/
enabled={1|0}:是否启用此仓库;默认为启动
gpgcheck={1|0}:是否检查完整性及来源合法性
repogpgcheck={1|0}:是否检测源数据文件的gpgcheck
gpgkey=URL:检查所需的密钥文件
enablegroup={1|0}:是否支持在此仓库上使用组:默认为启用
failovermethod={roundrobin|prioity}:轮循,优先级取安装包路径;默认为roundrobin(轮循),意为随机挑选。
cost=1000(默认)开销
1:表示开
0:表示关
yum命令
yum [options] [command] [package …]
显示仓库列表:
repolist [all|enabled|disabled]
显示程序包
list
yum list [all | glob_exp1] [glob_exp2] […]
yum list available|install|updates [glob_exp1] […]
安装程序包
install
安装时可以指定版本号
reinstall package1 [package2] […](重新安装)
升级程序包
update [package1] [package2] […]
downgrade package1 [package2] […](降级)
检查可以升级
check-update
卸载程序包
remove | erase package1 [package2] […]
查看程序包的infomation
info […]
查看指定的特性(可以是某文件)是由哪个程序包提供;
provides | whatprovides feature1 [feature2] […]
清理本地缓存:
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
构建缓存:
makecache
搜索:
search string1 [string2] […]
以指定的关键字搜索程序包名及summary信息;
查看指定包所以来的capabilities
deplist package1 [package2] […]
查看yum事物历史
history [info|list|packages-list|packages-info|sum-mary|addon-info|redo|undo|rollback|new|sync|stats]
安装及升级本地程序包
localinstall rpmfile1 [rpmfile2] […](maintained for legacy reasons only – use install)
localupdate rpmfile1 [rpmfile2] […](maintained for legacy reasons only – use update)
包组管理的相关命令:
groupinstall group1 [group2] […]
groupupdate group1 [group2] […]
grouplist [hidden] [groupwildcard] […]
groupremove group1 [group2] […]
groupinfo group1 […]
mount -r /dev/cdrom /media/cdrom
mount 挂载
yum的命令行选项
–nogpgcheck:禁止进行gpg check;
-y:自动回答为“yse”
-q:静默模式
–disablerepo=repoidglob:临时禁用此处指定的repo
–enablerepo=repoidglob:临时启用此处指定的repo
–noplugins:禁用所有插件
yum的repo配置文件中可用的变量
$releasever:当前os的发行版的主版本号
$arch:平台
$basearch:基础平台
$YUM0-$YUM9
http://mirrors.mageedu.com/centos/$releasever/$basearch/os
如何使用光盘当作本地yum仓库
(1)挂载光盘至某目录,例如/media/cdrom
#mount -r -t iso9660 /dev/cdorm /media/cdrom
(2)创建配置文件
进入/etc/yum.repos.d目录下创建一个名为.repo结尾的配置文件,并编辑以下信息
[base]
name=
baseurl=
gpgcheck=
enabled=
gpgkey=
使用yum repolist查看yum仓库列表
安装报错问题
gpg key parsing failed:no key found in given key data
使用yum makecache和yum update 解决,并且成功安装软件 创建本地yum源仓库
createrepo 选项 目录
首先使用命令yum install createrepo安装createrepo文件,这个文件是可以帮我们组织和管理创建出rpm包的相关的repodata目录文件,
然后使用lftp命令链接到FTP服务器上去下载rpm包(以教室环境为例)
lftp 10.1.0.1:/pub/Sources/6.x86_64/xen4centos/x86_64/Packages> mget *.rpm
cd到下载RPM包的指定目录(目录需事先创建)中可看到刚才下载的包
然后cd到下载包的目录中执行createrepo ./(直接指定当前工作目录)命令生成repo目录
命令执行成功后及可在路径下看到已经生成了repodate目录
至此!本地yum源已经创建完成了,此yum源可以放在ftp或http服务中被远程使用,也可以在本地使用。
在/etc/yum.repos.d/base.repo将此yum源添加进配置文件
使用yum repolist命令查看yum源列表可看到此源已经被添加,并且可以正常安装
命令整理
-
-y:自动回答为yes
-
list:列出所有仓库中的程序包,支持通配符
-
all:所有程序包
-
available:可用的,仓库中有尚未安装的
-
installed:已经安装的
-
clean:清理缓存。yum缓存路径:/var/cache/yum/
-
yum clean all:清除所有缓存信息,但不会清除目录
-
repolist:显示仓库列表及其简要信息
-
all:所有的仓库
-
enabled:已经启用的仓库
-
disabled:未启用的仓库
-
install:安装
-
yum install [-y] PACKAGE_NAME
-
remove|erase:卸载。和此程序包有依赖性的其他包也会被一并卸载
-
infoPACKAGE … :查询程序的相关简要信息。这个包装不装都没有关系,只要仓库中有就行
-
grouplist:列出所有包组
-
groupinstall:安装包组
-
可直接用install、remove或update来管理包组,在包组前面加@用以区分:yuminstall @"Server Platform Development"
完
原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/37963