Yum的配置与管理
yum 是一个工具的名称yellowdogupdate modifier = yum,也是这个工具的命令。
yum命令与rpm命令一样,都是安装rpm包的。
yum命令比rpm命令强大,yum可以自己解决依赖关系。
我们可以这样来理解yum:
管理员收集了N多rpm包放在一个文件里面,yum就在这个文件里面找到自己要安装的文件和所依赖文件,自己用rpm来依次安装所需要的所以rpm程序包。
yum依赖rpm。在程序的角度来说,yum是rpm的二次开发。还记得 rpm�Cq �Crequires zsh这个命令吧。懂了原理,我们来实际操作了。
管理员收集了N多rpm包放在一个文件里面等待yum命令来找需要的,这个就叫:服务端。
使用yum命令去存放了很多rpm程序包的文件找需要的,这个就叫:客户端。
yum是C/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 �Cy 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 �Cy
OY 顺利安装。
man createrepo
看看我们这个程序,原来这个可以制作repodata 目录。
每一步都是为了下一步,懂了吗?亲爱的程序员们!!!
我们来安装个ftp试试
yum install vsftpd �Cy
OK 又顺利完成了.
service vsftpd start
开启vsftpd(FTP)服务
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 �Cy
oy 又安装成功了。
终于到最后了:
服务端rpm程序包有更新,再一次createrepo 这个服务端目录即可.
大菜鸟祝:更上一层楼。欢迎加入大菜鸟3群:264723618