??YUM: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date 的替代工具。
??yum repository:(yum资源库) 以.repo结尾的yum库文件中存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)
??yum库文件中支持的文件的服务器:
???http:// (外部网站的rpm包地址)
???https:// (外部网站的rpm包地址)
???ftp:// (内部网的共享rpm包地址)
???file:// (本机上存储的rpm包地址)
??/etc/yum.conf:为所有仓库提供公共配置
??/etc/yum.repos.d/*.repo:为仓库的指向提供配置
??下面我们来看看这两个文件:
??cachedir :指定缓存目录
??logfile : 日志文件
??gpgcheck : 是否查包的合法性
??[repositoryID] (标题,这个库的id,相当于身份证号,不可重复)
??name=Some name for this repository (库名字,名字可以重复)
??baseurl=url://path/to/repository/ (指定rpm包的路径)
??enabled={1|0} (是否有效0表示这个repo无效,1表示有效,默认值为1)
??gpgcheck={1|0} (是否检验包的合法性默认为1)
??gpgkey=URL (公钥路径)
??enablegroups={1|0} (是否开启组功能)
??failovermethod={roundrobin|priority} (一个源是可以跟多个地址(baseurl)的,此选项是设置多个地址的使用顺序的)
???roundrobin:意为随机挑选,默认值
???priority:按顺序访问
??cost= 默认为1000(优先级)
??$releasever: 当前OS的发行版的主版本号
??$arch: 平台,i386,i486,i586,x86_64等
??$basearch:基础平台;i386, x86_64
??$YUM0-$YUM9:自定义变量
??例如:
???http://server/centos/$releasever/$basearch/
???如果当前服务器是centos7版本x86_64平台的
????则实际网址为http://server/centos/7/x86_64
???如果当前服务器是centos6版本i384平台的
????则实际网址为http://server/centos/6/i384
??yum源路径指定的不是包含软件包的那个目录,而是指定在包含有repodata的目录的上一级目录
??阿里云repo文件:http://mirrors.aliyun.com/repo/
???CentOS系统的yum源
????阿里云: https://mirrors.aliyun.com/centos/$releasever/os/x86_64/
????教学环境: http://172.16.0.1/cobbler/ks_mirror/$releasever/
???EPEL的yum源:
????阿里云: https://mirrors.aliyun.com/epel/$releasever/x86_64
????教学环境: http://172.16.0.1/fedora-epel/$releasever/x86_64/
???yum [options] [command] [package ...]
???yum的命令行选项:
????-y: 自动回答为“yes”,避免交互式
????-q:静默模式(但是仍会显示安装的过程,彻底静默建议使用yum -y install pkg1 &> /dev/null,把结果扔进垃圾桶)
????--nogpgcheck:临时不进行gpg check(不检验包的合法性)
????--disablerepo=repoidglob:临时禁用此处指定的repo
????--enablerepo=repoidglob:临时启用此处指定的repo
????--noplugins:禁用所有插件
???yum repolist [all|enabled|disabled]
????all 显示全部repo
????enabled 只显示生效的repo
????disabled 只显示无效的repo
???yum list [all] 显示所有的程序包
???yum list available 显示所有可用的,且未安装的
???yum list installed 显示所有已安装的包
???yum list updates 显示可更新的包
???yum install package1(包名) [package2]…
????安装软件包,可以同时跟多个包名,安装多个包
???yum reinstall package1 [package2]
????重新安装一个或多个已安装的包
???yum update [pkg1] [pkg2] (升级安装)(后跟多个包名可升级多个包)
???yum downgrade pkkg1 [pkg2] (降级安装)
???yum check-update
???yum remove 包名1 [包名3]… 删除程序包(后跟多个包名可同时删除多个包)
???yum erase 包名1 [包名2]… 卸载程序包
???yum info pkg 显示包的详细信息
???yum provides 文件路径(支持文件名通配符) 查询一个文件来自哪一个rpm安装包(不论这个包是否已安装)
???yum whatprovides 文件路径(支持文件名通配符) 查询一个文件来自于哪一个rpm安装包(不论这个包是否已安装)
???yum clean all 清空所有缓存
???yum makecache
???yum search str1 [str2] (str代表关键字文本)
???yum deplist pkg1 [pkg2]…
???yum history 显示yum的历史操作
???yum history info # 详细显示某条历史记录
???yum history undo # 撤销某条yum的操作
???yum history redo # 重新执行一遍某条yum的操作
???yum localinstall |install rpm路径 安装本地的rpm包,并用yum解决依赖性关系
???yum localupdate |update rpm路径 更新本地的rpm包,并用yum解决依赖性关系
???yum groupinstall grppkg1 安装该包组(grppkg1)
???yum grouplist 列出所有的包组
???yum groupinfo grppkg1 显示该包组包含的rpm包
???yum groupremove grppkg1 卸载包组
???为什么yum能帮我们解决一些依赖性关系呢?其实是因为在yum仓库下有一个repodata的目录,而在这个目录下就保存着各个包的信息及其依赖性关系,所以yum仓库指定的位置必须指定在有repodata目录的上一层目录,而如果想自己创建一个yum仓库,除了在该目录下拷贝一些包以外还需要自动创建一个repodata的目录。createrepo这个命令就会帮助我们自动搜索该目录下的所有包及依赖性关系,并创建repodata目录将其保存在该目录下语法格式如下:
?????createrepo 仓库路径(存放着rpm包的路径)
???创建一个yum仓库的步骤:
原文地址:http://blog.51cto.com/13570214/2072909