经过源代码编译的方式安装程序在灵活性、可定制性方面具备无可比拟的优点,但也正由于这种特性给管理员带来了额外的维护开销,当应用在大规模的服务器群集时存在必定的局限性。那么就须要使用——YUM软件仓库。html
借助于YUM软件仓库,能够完成安装、卸载、自动升级rpm软件包等任务,可以自动查找并解决rpm包之间的依懒关系,而无须管理员逐个、手工地安装每一个rpm包,使管理员在维护大量Linux服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中,构建一台源服务器能够大大缓解软件安装、升级等对Internet的依懒。vim
YUM仓库简单来讲就是: 1.RPM包构建的软件更新机制; 2.自动解决依赖关系; 3.软件包由集中的YUM软件仓库提供。
要成功使用YUM机制来更新系统和软件,须要有一个包含各类rpm安装包文件及其依懒软件的软件仓库,提供软件仓库的服务器也称为“源”服务器。centos
YUM软件仓库一般借助于HTTP协议或FTP协议来进行发布, 这样能够面向网络中的全部客户机提供软件源服务。为了便于客户机查询软件包,获取依懒关系等信息,在软件仓库中须要提供仓库数据(repodate文件),其中收集了目录下全部的rpm头部信息。缓存
RPM软件包的来源 1.CentOS发布的RPM包集合; 2.第三方组织发布的RPM包集合; 3.用户自定义的RPM包集合。
在centos 7 系统的安装光盘中,已针对软件目录Packages创建好了repodate数据。所以只需将整个光盘中的内容经过HTTP和FTP的方式进行发布,就能够做为软件仓库。服务器
[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-21.el7.x86_64.rpm //经过rpm的方式安装FTP服务 [root@localhost ~]# mkdir /var/ftp/centos7 [root@localhost ~]# cp -rf /mnt/* /var/ftp/centos7/ //建立一个目录(自定义便可,必须在能够匿名访问FTP服务的目录中) //而后将光盘下的全部东西都复制到该目录下
对于用户搜集的非Centos 7 光盘中的软件包。除了须要准备的相应的目录以外还须要手工的建立repodate文件,这就须要用到createrepo工具。网络
[root@localhost ~]# mkdir /var/ftp/other [root@localhost ~]# cd /var/ftp/other/ //进入到存放rpm包的目录中 [root@localhost other]# createrepo . //使用createrepo工具进行建立repodate文件, //并制定数据文件存放位置是当前目录
[root@localhost ~]# systemctl start vsftpd [root@localhost ~]# systemctl enable vsftpd //启动FTP服务并设置为开机自启动 [root@localhost ~]# ftp 127.0.0.1 Connected to 127.0.0.1 (127.0.0.1). 220 (vsFTPd 3.0.2) Name (127.0.0.1:root): //直接回车 530 Permission denied. Login failed. ftp> //测试FTP服务能够匿名访问
yum工具使用的软件仓库信息存放在/etc/yum.repos.d目录下扩展名必须是“.repo”结尾(建议将目录下原来的文件移出指定目录),本来的文件是联网直接能够从互联网下载软件的配置文件。架构
[root@localhost ~]# mv /etc/yum.repos.d/* /a [root@localhost ~]# vim /etc/yum.repos.d/a.repo //建立新的YUM仓库,内容以下: #建立安装经过FTP发布的光盘镜像中的rpm包 [ftp] //仓库ID name=ftp //仓库名称,自定义,可忽略 baseurl=ftp://192.168.1.1/centos7 //URL访问路径(FTP服务须指定到repodate数据文件的上级目录) enabled=1 //是否启用软件仓库(1启用,0不启用)默认值为1,这项可忽略 gpgcheck=1 //是否验证软件包的签名(1启用,0不启用) gpgkey=file://etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 //指定公钥文件存放位置 #建立安装经过FTP发布非光盘镜像的rpm包 [ftp1] name=ftp1 baseurl=ftp://192.168.1.1/other enabled=1 gpgcheck=0 //没什么特殊要求,这项通常是0,不启用软件的签名认证 #经过HTTP发布的光盘镜像中的rpm包 [http] name=http baseurl=http://192.168.1.1 //HTTP服务,只需指定HTTP服务的IP地址便可 enabled=1 gpgcheck=0 #若是光盘挂载本地 [local] name=local baseurl=file:///mnt //本地指定光盘镜像挂载位置 enabled=1 gpgcheck=0
在CentOS 7 服务器中,yum工具是最经常使用的YUM客户端工具,由默认安装的yum-3.4.3-150.el7.centos.noarch软件包提供。app
[root@localhost ~]# yum list //能够得到系统中的软件安装状况,也能够查询软件仓库中可用的软件包列表。 [root@localhost ~]# yum list installed //只列出系统中已安装的软件包 [root@localhost ~]# yum list available //只列出软件仓库中可用(可是还没有安装)的软件包 [root@localhost ~]# yum list updates //列出能够升级版本的软件包
[root@localhost ~]# yum info vsftpd //加软件包查看详细的描述信息 已加载插件:fastestmirror, langpacks 源 'a' 在配置文件中未指定名字,使用标识代替 Loading mirror speeds from cached hostfile 已安装的软件包 名称 :vsftpd 架构 :x86_64 版本 :3.0.2 发布 :21.el7 大小 :348 k 源 :installed 简介 : Very Secure Ftp Daemon 网址 :https://security.appspot.com/vsftpd.html 协议 : GPLv2 with exceptions 描述 : vsftpd is a Very Secure FTP daemon. It was written completely from : scratch.
[root@localhost ~]# yum search vsftpd
//查询与vsftpd相关的软件包
[root@localhost ~]# yum search vsftpd
//加大查询范围ide
使用yum命令进行操做时,自动检查并解决软件包之间的依懒关系,期间会提示用户按“y”确认。若但愿自动确认,```
能够在yum命令后添加“-y”选项。工具
[root@localhost ~]# yum -y install vsftpd //安装vsftpd服务 [root@localhost ~]# yum -y update vsftpd //更新vsftpd服务 [root@localhost ~]# yum -y remove vsftpd //卸载vsftpd服务
若是YUM配置文件编写错误,修改配置文件以后,建议使用
[root@localhost ~]# yum clean all //清空YUM缓存信息