Yum的功能与使用方法
yum是一个统一管理包且能帮助安装的软件,顾名思义,当真的极其美味。 日常安装我们都会需要解决烦人的依赖关系,而yum可以很好的解决这个关系。
它由两部分组成哦,软件库和本地列表。库是指软件包存储的位置,而我们需要知道软件库中都有什么软件,需要在本地获取一份清单,这份清单就是我所理解的本地列表。只需要有抽象的概念就好了。 哈哈!
首先说仓库吧。当我们创建一个仓库的时候,会生成一个叫做repodata的目录,而仓库路径便是他的上一级目录,假设我们在/mnt/cdrom底下有一个repodata的文件(显示成这样-->/mnt/cdrom/repodata)那么指向库的路径便是/mnt/cdrom了。
上面我们讲了库的指向位置,下面我们就需要告诉系统我们的库在哪里了,看好了哈!
Yum的主配置文件是存储在/etc/yum.conf,一般情况下我们不在yum.conf里面做更改(为了方便管理),不过我们所建立的其他配置文件的公共选项可以在yum.conf里设置好,可以理解为其他配置文件的默认属性吧。那我们在那配置呢?我们是在etc/yum.repos.d目录下配置
。在这里我们创建的的文件需要遵从.repo的命名格式,比如zhaolei.repo,当然为了可以直观理解也可以这样,比如:163com.repo这样我们就知道这个配置文件指向的是163给我们提供的repository啦。
那简单的说说repo配置文件里面的参数吧!
首先行首:
1、[base]
2、name=CentOS-$releasever - Base - 163.com
3、baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
4、gpgcheck=1
5、gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
上面是指向163的yum repository的配置文件:
=前面是固定项,不能变动。=后反之
首行是repo的名称。
第二行是repo的描述,没错,别被name误导了,他其实是描述说明。
第三行是库的路径,也就是我前面说的需要指向的位置。(注:是redata的父目录)
第四行是校验,需要校验填1 不需要填0
第五行是repository提供者的公钥路径
配置好后可以用yum repolist 列出已经配置的所有可用repo。看一下执行后的效果,我们能在下面找到我刚讲述base的名称:
[root@localhost yum.repos.d]# yum repolist
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
base | 3.7 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 2.7 MB 00:06
vftpyum | 2.9 kB 00:00 ...
repo id repo name status
base CentOS-6 - Base - 163.com 6,518
extras CentOS-6 - Extras - 163.com 37
updates CentOS-6 - Updates - 163.com 965
vftpyum this is centos6.6 yum 2,334
repolist: 9,854
[root@localhost yum.repos.d]#
上面学会了yum repo的配置文件,那样我们已经实现了能yum使用的环境了,下面就是如何用yum 来操作软件包了的命令使用了:
查看程序包:yum list 后面跟软件包名称。
比如yum list vsftpd,有意思的是后面可以跟all来显示所有。当你记忆模糊的时候也可以搭配通配符。更多的就man吧!
安装程序包:yum install 程序名......可以多个(注只需提供包名就行)
重新安装:yum reinstall 程序名
更新升级:update 程序名
检查哪些升级可用:check-update
Yum的命令选项:
-y:自动回答“yes”
--nogpgcheck:禁止做包校验
Yum有一些内置的变量,来熟悉下吧。
1、$raleasever”当前os发行版的主版本号
2、$arch:平台
3、$basearch:基础平台。
我们也可以自己创建库,首先安装对应发行版版本的叫做createrepo程序包:
Yum install createrepo(可以用163的源使用yum安装)
然后对你的软件包存储目录运行createrepo命令即可。