经过源码编译的方式安装程序在灵活性、可定制性方面具备无可比拟的优点,但也给管理员带来了额外的维护开销,而且在大规模的服务器群应用时存在必定的局限性。而传统的USB光驱、移动硬盘等安装方式显然已经力所难及。借助于YUM软件仓库,能够完成安装、卸载、升级rpm软件包等任务,可以自动查找并解决rpm包之间的依赖关系,使管理员在维护大量的Linux服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中,构建一台源服务器能够大大缓解软件安装、升级等对Internet的依赖html
部署YUM软件仓库sql
要成功使用YUM机制来更新系统和软件,须要有一个包含各类rpm安装包文件的软件仓库,提供软件仓库的服务器称为源服务器。在客户机中只要正确指定软件仓库的地址等信息,就能够经过对应的源服务器来安装、更新软件了vim
1. 准备网络安装源(服务器端)
缓存
YUM软件仓库一般借助于HTTP或FTP协议进行发布,这样能够面向网络中全部的客户机提供软件源服务。为了便于客户机查询软件包、获取依赖关系等信息,在软件仓库中须要提供仓库数据(Repodata),其中收集了目录下的全部rpm包的头部信息bash
2. 配置软件仓库位置(客户机端)服务器
在客户机上须要制定至少一个可用的软件仓库,而后才能使用yum工具进行下载、安装软件包网络
1、将本地文件夹配置为YUM软件仓库tcp
这种方式配置的YUM仓库仅限于在本机使用ide
[root@localhost ~]# mount /dev/cdrom /media/ //挂载系统光盘 mount: block device /dev/sr0 is write-protected, mounting read-only [root@localhost ~]# mkdir /home/localrpm //建立本地软件仓库目录 [root@localhost ~]# cp -rf /media/* /home/localrpm //将系统光盘内数据复制到目录下,包含repodata数据文件 [root@localhost ~]# vim /etc/yum.repos.d/local.repo //编写yum配置文件 [local] //仓库类别 name=rhel //描述、说明 baseurl=file:///home/localrpm //URL访问路径 enabled=1 //1表示启用此仓库,0表示不启用;默认启用,可省略 gpgcheck=0 //验证软件包的签名,0表示不验证;若无此要求,可省略
2、用FTP部署YUM软件仓库工具
(1)服务器端
在REHL系统的安装光盘中,已经针对软件目录Packages创建好了repodata数据。对于用户收集的非REHL系统光盘自带的其余软件包,还须要使用createrepo工具手动建立repodata文件
[root@localhost ~]# mount /dev/cdrom /media/ //挂载系统光盘 mount: block device /dev/sr0 is write-protected, mounting read-only [root@localhost ~]# yum -y install vsftpd //使用本地yum安装vsftpd服务 Installed: vsftpd.x86_64 0:2.2.2-11.el6_4.1 Complete! [root@localhost ~]# chkconfig vsftpd on //启动vsftpd服务 [root@localhost ~]# service vsftpd start [root@localhost ~]# mkdir /var/ftp/rhel //建立系统软件仓库目录 [root@localhost ~]# cp -rf /media/* /var/ftp/rhel/ //将系统光盘内数据复制到目录下,包含repodata数据文件 [root@localhost ~]# mkdir /var/ftp/other //建立用户收集的软件仓库目录,须要使用createrepo工具手动建立repodata文件 [root@localhost ~]# yum -y install createrepo //使用本地yum安装createrepo软件包 [root@localhost ~]# createrepo --database /var/ftp/other/ //建立repodata文件 Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete [root@localhost ~]# iptables -I INPUT -p tcp --dport 20:21 -j ACCEPT //容许FTP流量访问本服务器 [root@localhost ~]# modprobe ip_conntrack-ftp //须要手动加载FTP模块
(2)客户机端
yum工具使用的软件仓库信息存放在/etc/yum.repos.d目录中下扩展名为“.repo”的文件中
[root@localhost ~]# vim /etc/yum.repos.d/ysf.repo //编写yum配置文件 [base] //仓库类别 name=rhel //描述、说明 baseurl=ftp://192.168.1.1/rhel //URL访问路径 enabled=1 //1表示启用此仓库,0表示不启用;默认启用,可省略 gpgcheck=1 //验证软件包的签名,0表示不验证;若无此要求,可省略 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //验证须要指定GPG公钥文件的位置, [other] name=othet baseurl=ftp://192.168.1.1/other enabled=1 gpgcheck=0
3、用HTTP部署YUM软件仓库
(1)服务器端
[root@localhost ~]# mount /dev/cdrom /media/ //挂载系统光盘 mount: block device /dev/sr0 is write-protected, mounting read-only [root@localhost ~]# yum -y install httpd //使用本地yum安装httpd服务 [root@localhost ~]# chkconfig httpd on //启动httpd服务 [root@localhost ~]# service httpd start [root@localhost ~]# mkdir /var/www/html/rhel //建立系统软件仓库目录 [root@localhost ~]# cp -rf /media/* /var/www/html/rhel/ //将系统光盘内数据复制到目录下,包含repodata数据文件 [root@localhost ~]# mkdir /var/www/html/other //建立用户收集的软件仓库目录,须要使用createrepo工具手动建立repodata文件 [root@localhost ~]# yum -y install createrepo //使用本地yum安装createrepo软件包 [root@localhost ~]# createrepo --database /var/www/html/other/ //建立repodata文件 Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete [root@localhost ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT //容许HTTP流量访问本服务器
(2)客户机端
[root@localhost ~]# vim /etc/yum.repos.d/ysf.repo [base] name=rhel baseurl=http://192.168.1.1/rhel enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [other] name=othet baseurl=http://192.168.1.1/other enabled=1 gpgcheck=0
使用yum工具管理软件包
下面列出如下经常使用的yum命令
1. 查询软件包
(1)yum list——查询软件包列表
能够得到系统中的软件安装状况,也能够得到软件仓库中可用的软件包列表
[root@localhost ~]# yum list installed //列出系统已安装的软件包 [root@localhost ~]# yum list available //列出软件仓库中可用的软件包(未安装) [root@localhost ~]# yum list updates //列出能够升级版本的软件包 [root@localhost ~]# yum list yum\* //列出全部以yum开头的软件包 [root@localhost ~]# yum grouplist //列出YUM仓库中的软件分组信息
(2)yum info——查询软件包的描述信息
[root@localhost ~]# yum info httpd //查看软件包httpd的信息 [root@localhost ~]# yum groupinfo desktop //列出软件分组Desktop所包含的软件包等信息
(3)yum search——查询指定的软件包
根据某个关键词来查找相关的软件包,默认根据软件包名称和描述信息进行搜索
[root@localhost ~]# yum search http //搜索软件仓库中的软件包名称或描述信息包含“http”的软件包 [root@localhost ~]# yum search all http //搜索软件仓库中与“http”相关的软件包
2. 清除yum缓存
yum会把下载的软件包和header存储在cache中,而不会自动删除。若是咱们以为它们占用了磁盘空间,可使用yumclean指令进行清除,更精确的用法是yumclean headers清除header,yum cleanpackages清除下载的rpm包,yum cleanall 清除全部
[root@localhost ~]# yum clean all //清空/var/cache/yum目录下的缓存数据
3. 安装、升级、卸载软件包
使用yum工具安装、卸载软件包,执行操做时自动检查并解决软件包之间的依赖关系,期间会提示用户按Y键确认安装,可在yum命令后加“-y”选项,指定确认
[root@localhost ~]# yum update //升级系统 [root@localhost ~]# yum install 软件包 //安装指定软件包 [root@localhost ~]# yum update 软件包 //升级指定软件包 [root@localhost ~]# yum remove 软件包 //卸载指定软件包 [root@localhost ~]# yum deplist 软件包 //查询指定软件包的依赖关系 [root@localhost ~]# yum localinstall 软件包 //从磁盘安装rpm包并使用yum解决依赖 [root@localhost ~]# yum groupinstall 软件组 //安装指定软件组中的软件包 [root@localhost ~]# yum groupupdate 软件组 //更新指定软件组中的软件包 [root@localhost ~]# yum groupremove 软件组 //卸载指定软件组中的软件包
4. yum高级管理应用技巧
技巧1:加快你的yum的速度.使用yum的扩展插件yum-fastestmirror,我的认为这个插件很是有效,速度真的是明显提升
[root@localhost ~]# yum -y install yum-fastestmirror //在CentOS上,名字叫yum-plugin-fastestmirror
技巧2:扩展你的rpm包好多包官方没有,怎么搞定他.要我本身编译吗?你能够本身到http://dag.wieers.com/rpm这来找
技巧3:仍是有rpm包找不到怎么办,你能够用高级查找http://rpm.pbone.net/,基本上能够搜集齐全
技巧4:软件组安装有时咱们安装完系统,管理有一类软件没有安装,好比用于开发的开发包,咱们能够用软件包来安装。
[root@localhost ~]# yum -y groupinstall "Development Libraries" [root@localhost ~]# yum -y groupinstall "Development Tools" //安装用于开发的软件包 [root@localhost ~]# yum -y groupinstall "Chinese Support" //安装用于中文支持的软件包 [root@localhost ~]# yum deplist package1 //查看程序package1依赖关系
技巧4:关于其余知识,能够经过man命令查看
[root@localhost ~]# man yum yum -y install 软件包(支持*) //自动选择y,全自动 yum install 软件包(支持*) //手动选择y or n yum remove 软件包(不支持*) rpm -ivh 软件包(支持*) //安装rpm包 rpm -e 软件包(不支持*) //卸载rpm包 yum install kernel-headers kernel-devel //升级内核