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(优先级)centos
$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:禁用全部插件ide
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]
从新安装一个或多个已安装的包this
yum update [pkg1] [pkg2] (升级安装)(后跟多个包名可升级多个包)
yum downgrade pkkg1 [pkg2] (降级安装)阿里云
yum check-updateurl
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仓库的步骤:
提示:在centOS6中默认createrepo命令是没有安装的,因此可能会出错,想要安装createrepo命令能够用如下步骤哦:
一、yum list createrepo 查询yum仓库里是否有createrepo的包
查出createrepo命令的安装包名为createrepo.noarch
二、yum install createrepo.noarch 安装createrepo安装包
安装成功
三、若是全部的rpm安装包都在/dvd目录下,想要将此目录设置成一个yum仓库来使用,如何使用createrepo命令来建立repodata目录?
如此这个/dvd目录就能够在yum仓库的配置文件中使用了