通过源码编译的方式安装程序在灵活性、可定制性方面具有无可比拟的优势,但也给管理员带来了额外的维护开销,并且在大规模的服务器群应用时存在一定的局限性。而传统的USB光驱、移动硬盘等安装方式显然已经力所难及。借助于YUM软件仓库,可以完成安装、卸载、升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,使管理员在维护大量的Linux服务器时更加轻松自如。特别是在拥有大量Linux主机的本地网络中,构建一台源服务器可以大大缓解软件安装、升级等对Internet的依赖

部署YUM软件仓库

要成功使用YUM机制来更新系统和软件,需要有一个包含各种rpm安装包文件的软件仓库,提供软件仓库的服务器称为源服务器。在客户机中只要正确指定软件仓库的地址等信息,就可以通过对应的源服务器来安装、更新软件了

1. 准备网络安装源(服务器端)

YUM软件仓库通常借助于HTTP或FTP协议进行发布,这样可以面向网络中所有的客户机提供软件源服务。为了便于客户机查询软件包、获取依赖关系等信息,在软件仓库中需要提供仓库数据(Repodata),其中收集了目录下的所有rpm包的头部信息

2. 配置软件仓库位置(客户机端)

在客户机上需要制定至少一个可用的软件仓库,然后才能使用yum工具进行下载、安装软件包

一、将本地文件夹配置为YUM软件仓库

这种方式配置的YUM仓库仅限于在本机使用[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表示不验证;若无此要求,可省略

二、用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

三、用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    //升级内核

用Linux配置yum软件仓库,三种方法部署YUM软件仓库相关推荐

  1. 三种方法部署YUM软件仓库

    通过源码编译的方式安装程序在灵活性.可定制性方面具有无可比拟的优势,但也给管理员带来了额外的维护开销,并且在大规模的服务器群应用时存在一定的局限性.而传统的USB光驱.移动硬盘等安装方式显然已经力所难 ...

  2. linux配置yum源的三种方法:

    linux配置yum源的三种方法: 1.配置网络yum源 2.通过上传镜像文件配置本地yum源 3.通过连接存储或本地镜像文件配置本地yum源(虚拟机) 配置各种yum源的时候,需要提前知道自己的li ...

  3. centos 卸载软件_一篇看懂!详解-Linux系统中安装软件的三种方法

    Linux系统中安装软件的三种方法 注:本文主要以CentOS为例介绍常用的安装方式,其他版本linux在文章底部 Linux系统中怎么安装软件,首先说一下应用程序与系统命令的区别: 1.文件位置 系 ...

  4. Linux清空文件内容的三种方法

    Linux清空文件内容的三种方法 测试文件:a.txt 第一种: $> a.txt 第二种: $echo "" > a.txt 第三种: $cat /dev/null ...

  5. Linux配置网络信息(四种方法)

    Linux配置网络信息(四种方法) 临时配置IP地址(2种方式) 1.ifconfig命令 语法: ifconfig <以太网接口> <IP地址> netmask <掩码 ...

  6. linux存储安装教程,在Linux下安装Pngquant的三种方法:从存储库,源代码及使用Cargo安装...

    本文介绍在Linux操作系统下安装Pngquant的三种方法,即从存储库.从源代码及使用Cargo安装,可用在Arch Linux.Debian.Ubuntu.Linux Mint.Fedora.op ...

  7. 制作自己的Puppy Linux Live-CD发行版的三种方法

    经过一段时间的使用以后,我们每个人电脑里的Puppy Linux都是独一无二的,我们可以通过简单的方法将自己电脑上的Puppy制作成iso或Live-CD,成为自己玩的"Only You&q ...

  8. RHEL7.0 配置网络IP的三种方法

    导读 RHEL7里面的网卡命名方式从eth0,1,2的方式变成了enoXXXXX的格式. en代表的是enthernet (以太网),o 代表的是onboard (内置),那一串数字是主板的某种索引编 ...

  9. linux查看磁盘挂载的三种方法

    今天要讲的是linux下怎么查看磁盘的挂载,包括挂载点和挂载的硬盘或逻辑卷. 第一种方法:使用df命令,这个命令比较常用,大家都很熟悉.问题是这种方法,有时候挂载点和挂载的卷不在同一行,使用脚本分析需 ...

最新文章

  1. collection_check_boxes的应用
  2. padding和卷积的区别_池化、池化与卷积异同、zero-padding
  3. 【快乐水题】747. 至少是其他数字两倍的最大数
  4. 甘肃省计算机等级考试在线支付,甘肃计算机等级考试入口
  5. mysql某个字段改为非unique
  6. 对于以太坊虚拟机 (EVM)及其相关知识的讲解
  7. 图片浏览器每次只能打开一张图片_好嗨哟!微信图片批量提取下载,我只用了3秒钟~...
  8. html判断字段不为空,js里是否为空字符串的判断
  9. linux的awk命令如何用?
  10. SqlServer将特定字符串拆分并进行插入操作
  11. 移动跨平台框架开发之一:ios重用c++库
  12. java编写个倒计时_怎么编写一个倒计时java程序?求具体步骤!
  13. Hybrid Astar 算法剖析和实现(一)
  14. 设计师配色宝典:教你从零开始学配色
  15. 【项目一、xxx病虫害检测项目】2、网络结构尝试改进:Resnet50、SE、CBAM、Feature Fusion
  16. 鲁班学院java高级架构师_鲁班学院三期java架构师
  17. 【python+selenium】自动登陆学校青果教务网
  18. 微信公共平台 “token验证失败”的一个原因
  19. 智能音箱大战全面开火,那么问题来了:如何成为一名全栈语音识别工程师?
  20. 在web-actix框架上实现上传文件

热门文章

  1. 案例报道:索尼工程投影机郎酒集团展厅
  2. IE浏览器中文参数导致400 Bad Request问题研究(转)
  3. 18位身份证校验位的计算方法
  4. 半导体制造工艺流程——后道工序
  5. 完整的IPTV/OTT直播点播系统都有哪些功能?
  6. 前端怎样使用base64图片上传到七牛云
  7. 锤子要和360手机合并?周鸿祎要复制小米,罗永浩不想再小而美
  8. Buffer I/O error on device mtdblock
  9. CAD看图中如何删除多余的线?
  10. vue3实现video控件的h5端进度条拖拽与跳转