linux程序包管理之yum
yum:之前命名为:yellow dog ,后来因为及其好用,很多发行版都以此为默认rpm程序前端管理工具,故此更名为:yellowdog update modifier,更牛的还有一个基于redhat的二次发行版也叫yellow dog
功能:
yum解决程序包依赖性前端管理工具:
Centos:yum,dnf
suse:zyyer(rpm)
yum repository:yum repo (yum仓库)
存储了众多rpm包,以及包的相关元数据文件(放置于特定目录下:repodate):
repodate:目录所在的位置就应该是仓库应该指向的路径,而这个路径指向的叫做文件服务器,其中有ftp、http、file、nfs等
yum客户端:
配置文件:
主配置文件:/etc/yum.conf
//为所有仓库提供公共配置(如:在安装程序包时是否要精确的平台匹配(exactarch=1)、 装某一个包时是否要检查其合法性及其完整性(gpgcheck=1,1表示开启)是否支持插件机制(plugins=1)等等.........),此文件很少动用。
各仓库的定义地址:/etc/yum.repos.d/*.repo
//此遵循linux把大配置文件分割为小文件进行管理风格,每个文件中以.repo结尾的可以配置一个至多个仓库,用此方法便于管理
仓库的定义:
[repository]仓库名
name:描述
baseurl:yum仓库地址(其中可同时指定多个)
enabled:{1|0}:默认开启(1为开启)
gpgcheck:对于此仓库的所有程序包在安装之前是否要检查其来源合法性及其完整性
repo_gpgcheck:是否要检查仓库元数据文件的签名信息。
gpgkey:指明一个url,系其秘钥文件地址
mirrorlist:以镜像方式指定baseurl地地址
enablegroups={1|0}:是否支持在此仓库中使用组来批量管理程序包。
failovermethod {roundrobin(轮寻)|priority(优先级)}:baseurl指向多个时,默认为roundrobin(意为随机挑选),而priority则是至上而下的故障转移方法
cost:默认为1000,如果决定把某一个仓库cost值变小,则此仓库则会优先应用。
yum命令的用法:
yum [options] [command] [package ...]
子命令:
* install package1 [package2] [...]
安装指定程序包
* reinstall package1 [package2] [...]
重启安装==rpm -ivh --replacepkgs P-file
* update [package1] [package2] [...]
升级的指定程序包:
* downgrade package1 [package2] [...]
降级指定的程序包
* check-update
检查有哪些升级包可用
* remove | erase package1 [package2] [...]
卸载指定程序包(依赖于此删除的程序包的所有包都会被卸载)
* info [...]
用于列出可用的包的描述和汇总信息
#yum info gcc
* provides | whatprovides feature1 [feature2] [...]
查看指定的特性(可以是某文件)是由那个程序包提供
相当于rpm -qf
#yum provides /bin/cat /bin/ls
* clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
清理本地缓存:
* makecache
生成、构建缓存
* search string1 [string2] [...]
根据指定的关键字搜索包含指定的关键的所有信息(模糊匹配,匹配的是程序包的包名和summary(摘要总结))
* localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use install)
* localupdate rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use update)
安装及升级本地程序包(并非yum仓库中的包)
//在网上download一个程序包,如果此包拥有依赖关系。则不能用rpm -ivh,则需使用yum 只带的本地安装命令。如遇发现需要解决依赖关系,yum会自动从仓库中查找安装。解决了依赖关系问题。
注:可直接使用install,功能相同
* deplist package1 [package2] [...]
查看指定包所依赖的(c