Yum的配置与管理

yum 是一个工具的名称yellowdogupdate modifier = yum,也是这个工具的命令。

yum命令与rpm命令一样,都是安装rpm包的。

yum命令比rpm命令强大,yum可以自己解决依赖关系。

我们可以这样来理解yum

管理员收集了Nrpm包放在一个文件里面,yum就在这个文件里面找到自己要安装的文件和所依赖文件,自己用rpm来依次安装所需要的所以rpm程序包。

yum依赖rpm。在程序的角度来说,yumrpm的二次开发。还记得 rpm–q –requires zsh这个命令吧。懂了原理,我们来实际操作了。

 

管理员收集了Nrpm包放在一个文件里面等待yum命令来找需要的,这个就叫:服务端。

使用yum命令去存放了很多rpm程序包的文件找需要的,这个就叫:客户端。

yumC/S架构的。

C (Client)----à客户端 :在这里简单的理解,就是寻找(请求)资源的一方。

S (Server)----à服务端 :在这里简单的理解,就是等待资源被找到(被请求)的一方。

 

客户端篇:

         配置客户端:

         /etc/yum.conf文件

         在这个文件里面,可以配置,但不建议。主文件放公用配置最佳,你非要问为什么。只能告诉你,这是程序员的情怀。其实原因是太多配置放在一个里面,不易管理和操作。

         cat/etc/yum.conf文件

         它就会告诉你,最好一个配置单独放在/etc/yum.repos.d/目录下面。文件以.repo结束就可以了。

         cd/etc 目录里面 man yum.conf 有详细的使用说明

         vim/etc/yum.repos.d/yum.one.repo

         vim直接打开yum.one.repo文件,保存就自动创建这个文件。

         简单几行就可以解决配置的问题了。

         [yum_name]  #给指向yum服务端的配置,取一个名字。例[yum-one]

         name=yumone aliyun  #这个名字取服务端的rpm来自哪里

         baseurl=http://*.*.*.*/……  # 这个URL就是不一样服务端的地址

         enabled=1  # 有二个值:{1}整个配置可用,{0}整个配置停用。忽略此项时,默认是可用。

         gpgcheck=1  # 有二个值:{1}开启rpm检验,{0}关闭rpm检验。忽略此项时,默认是开户。

         gpgkey=http://*.*.*.*/……  # 这个URL地址指向rpm的密匙地址。gpgcheck开启,就要有此项。

         cost=1000  # 值为数字。开启多个yum配置时,值越小,优先级越高。忽略此项时,默认为1000.

         忽略选项的默认值都是/etc/yum.conf里面配置的。修改这里的值,默认值就更改。

         URL地址说明:

                   URL指向的路径:必需是repodata目录所在的父目录。

                   服务端使用的那类文件传输协议,就使用那种,目前有:

http://*.*.*.*/……  例:http://192.168.1.1/centos6.6/

ftp:// *.*.*.*/……   例:ftp://192.168.1.1/centos6.6/

file://……          例:file:///media/cdrom/centos6.6/

特别说明:file://{/}/是文件根目录,不是file://协议的部份。

 

累了大半天,终于OK。我们一起来看看命令的操作

yum命令:

         yum [options] [command] [package ...]

 

       [command] is one of:

        * install package1 [package2] [...]

        * update [package1] [package2] [...]

        * update-to [package1] [package2] [...]

        * check-update

        *upgrade [package1] [package2] [...]

        * upgrade-to [package1] [package2][...]

        * distribution-synchronization[package1] [package2] [...]

        * remove | erase package1 [package2][...]

        * list [...]

        * info [...]

        * provides | whatprovides feature1[feature2] [...]

        * clean [ packages | metadata |expire-cache | rpmdb | plugins | all ]

        * makecache

        * groupinstall group1 [group2] [...]

        * groupupdate group1 [group2] [...]

        * grouplist [hidden] [groupwildcard][...]

        * groupremove group1 [group2] [...]

        * groupinfo group1 [...]

        * search string1 [string2] [...]

        * shell [filename]

        * resolvedep dep1 [dep2] [...]

        * localinstall rpmfile1 [rpmfile2][...]

           (maintained for legacy reasons only- use install)

        * localupdate rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only- use update)

        * reinstall package1 [package2] [...]

        * downgrade package1 [package2] [...]

        * deplist package1 [package2] [...]

        * repolist [all|enabled|disabled]

        * version [ all | installed | available| group-* | nogroups* | grouplist | groupinfo ]

        * load-transaction [txfile]

        *check

        * help [command]

吓到了吧。这么多命令要记住。要用的很少的:

仓管管理:

         yum repolist all列出已经配置的所有可用仓库

         yum repolist enabled 列出开启的所有可用仓库

         yum repolist [all| enabled | disabled] 下面就写成这个样子了额。懂意思的嘛。

[ | ] 多个选择一个来使用。

缓存管理:

         yum clean [ packages | metadata | expire-cache| rpmdb | plugins | all ]

         清除选择对应的缓存,all肯定是全部。

创建缓存:

         yum makecache

         自动连接至每一个可用仓库,下载repodata目录数据,将其创建为缓存

         缓存所在位置/etc/yum.conf指定的 cachedir=【缓存路径】

程序包查看:

         yum list [...]  内容太多了,man yum 查看list用法详解

         yum list [all | glob_exp1] [glob_exp2][...]

         yum list [available | updates | installed| extras | obsoletes] [...]

         英文字面意思一样,英文不好,就不翻译了。程序和英文关系不大,有需要用有道。

组程序包查看:

         yum grouplist [hidden] [groupwildcard][...]

程序包安装:

         yum install package1 [package2] [...]

         配置指向多个服务端,版本不同时,默认安装最新的。

         yum install PACKAGE-VERSION ...

         指定安装那个版本

重新安装:

         yum reinstall package1 [package2] [...]

程序包升级:

         yum update [package1] [package2] [...]

程序包降级:

         yum downgrade package1 [package2] [...]

查看升级可用:

         yum check-update

卸载程序包:

         yum remove package1 [package2] [...]

         卸载时注意:正在卸载的程序包,有依赖于它的,全部都会被卸载。

查询:

         yum info PACKAGE ...

         查询程序的相关简要信息

         yum search KEYWORD ...

         在包名和简要信息中搜索指定的关键字

         yum provides /PATH/TO/SOMEFILE

         查询指定文件由哪个程序包安装生成

安装本地的rpm程序包文件:

         yum localinstall rpmfile1 [rpmfile2][...]

         安装本地文件时,有依赖时也会去服务部寻找相关程序包,自行解决依赖关系

升级本地的rpm程序包文件:

         yum localupdate rpmfile1 [rpmfile2][...]

包组管理:

         查看:

                   yum grouplist [hidden][groupwildcard] [...]

                   yum grouplist 直接查看所有包组

                   yum groupinfo group1 [...]

                   查看指定组的详细信息

         安装:

                   yum groupinstall group1[group2] [...]

                   安装整个包组

         升级:

                   yum groupupdate group1[group2] [...]

         卸载:

                   yum groupremove group1[group2] [...]

Centos7之后使用  installupdate remove来管理包组,在包组名前面加@Centos6 兼容

例:yum install @"Server Platform Development"

 

yum[options] [command] [package ...]

         [options]

                   -y : 自动回复”yes”

                   yum –y install php

                   --disablerepo=[yum_name]:临时禁用在配置文件中配置并启用的[yum_name]

                   --enablerepo=[yum_name]:临时启用指定的[yum_name]

                   --nogpgcheck: 禁止做包校验

 

 

服务器端:

         把光盘镜像里面的rpm程序包,拿来做yum服务器数据。

         mount /dev/cdrom /media/cdrom

         挂载光盘到/media/cdrom里面

         ls /media/cdrom

         看到里面有一个Packages 目录,里面就存放了很多rpm程序包,还有一个repodata目录。

         看到repodata目录,眼睛就发光了。直接把客户端配置到repodata的父目录(/media/cdrom)就可以了。

         客户端配置里面有讲解额 baseurl=file:///media/cdrom 保存,退出。

我们来试试吧!!!

yum install createrepo –y

OY 顺利安装。

man createrepo

看看我们这个程序,原来这个可以制作repodata 目录。

每一步都是为了下一步,懂了吗?亲爱的程序员们!!!

 

我们来安装个ftp试试

yum install vsftpd –y

OK 又顺利完成了.

service vsftpd start

开启vsftpdFTP)服务

service iptables stop

关闭 iptables (防火墙)服务

 

我们用浏览器来试试吧。

ftp://192.168.1.110

哇,我的进去了。看你的了……

ftp的访问目录在/var/ftp/pub目录下面

cp /media/cdrom/Packages/* /var/ftp/pub/

/media/cdrom/Packages/目录下的所以rpm程序包复制/var/ftp/pub目录下面

 

createrepo /var/ftp/pub/

制作repodata目录到/var/ftp/pub/目录下面

 

大解密:repodata目录里面放的内容,就是扫描了rpm程序包的目录(如书上的目录一样的东东)文件。

 

我们回客户端在改改配置吧。

baseurl=ftp://192.168.1.110/pub/

 

yum clean all

清除全部缓存

yum makecache

创建缓存

 

yum list php*

有木有rpm程序包。我的是有的额。

 

yum install php –y

oy 又安装成功了。

 

终于到最后了:

服务端rpm程序包有更新,再一次createrepo 这个服务端目录即可.

 大菜鸟祝:更上一层楼。欢迎加入大菜鸟3群:264723618