YUM介绍

  yum(yellow dog updater modified)为多个Linux发行版的软件包管理工具,Redhat RHEL CentOS Fedora YUM主要用于自动安装,升级rpm软件包,它能够自动查找解决rpm包之间的依赖关系。
YUM自动下载rpm包并安装,类某软件的一键安装。

YUM源是什么?
  要成功的使用YUM工具安装更新软件或系统,就需要有给一个包含各种rpm软件包的repository(软件仓库)这个软件仓库我们习惯成为yum源。网络上有大量的yum源,但是由于受到网络环境的限制,导致软件安装耗时过长甚至失败。特别是当有大量服务器大量软件包需要更新安装时,因此优化系统时候我们都更换国内的源。相比较而言,本地yum源服务器最大的优点是局域网的快速网络连接和稳定性。有了局域网中的YUM源服务器,即便在internet中断的情况下,也不会影响其他YUM客户端的软件安装和升级。

YUM源工作原理

1.yum -y install httpd
2.查找yum配置文件CentOS-Base.repo这个里面有下载地址
3.CentOS系统默认到国外的软件仓库下载rpm软件包
4.但国外的源比较慢因此系统优化时换成阿里云的源
5.但是还是觉得阿里云的源不快,因此搭建内网的yum源,公网的和自己做的rpm都可以放进去

说明:更换yum源实质就是更换下载地址

配置本地YUM仓库

安装createrepo软件
yum -y install createrepo
echo '192.168.1.100 mirrors.liuliya.com' >>/etc/host #提前验证内网YUM源
创建yum仓库的目录

mkdir -p /application/yum/centos6/x86_64/
cd /application/yum/centos6/x86_64/

rz #上传包到此目录,此目录下还可以包括文件夹
获取rpm软件包的方法

1.自己制作的rpm包
2. yumdownloader pcre-devel openssl-devel #只下载不安装
3.平时yum安装软件时不删除安装包

#cat /etc/yum.conf
keepalived=1

#安装包存储目录
cachedir=/var/cache/yum/$basearch/$releasever
#/var/cache/yum/x86_64/base/packages

初始化repodata索引文件
#初始化
createrepo -pdo /application/yum/centos6/x86_64/ /application/yum/centos6/x86_64/
#每加入一个rpm包就要更新一下
createrepo --update /application/yum/centos6/x86_64/
提供yum服务
#可以用apache或者nginx提供web服务,但用Python的http模块更简单,适用于内网环境
注意:先把Nginx关闭防止80端口冲突

cd /application/yum/centos6/x86_64/
python -m SimpleHTTPServer 80 &>/dev/null &

可以通过游览器输入本机IP查看
客户端的配置

cd /etc/yum.repos.d
mkdir yum_bak && mv *repo yum_bak
vim liuliya.repo
[liuliya]
name=server
baseurl=http://192.168.1.100
enable=1
gpgcheck=0

yum clean all #清空本机已有yum缓存
yum list   #列表显示yum仓库
小技巧:
上面展示的需要新建一个文件,也许工作中有更多的配置,如果手动配置比较麻烦,因此有一种更简单的方法,将这些操作做成rpm包
fpm -s dir -t rpm -n liuliya_repo -v 1.0 --post-install /server/scripts/liuliya_rpm.sh -f /etc/yum.repos.d/liuliya.repo
liuliya_rpm.sh脚本主要是刚才我们的一些操作。

yum 本地安装nginx

接前面文章定制的nginx rpm包
yum install nginx
安装完成后我们来验证下:
cd /application/
ll -h

显示
nign -> /application/nginx-1.6.3/
nginx-1.6.3

#查看下id nginx
id nginx
uid=500(nginx) gid=500(nginx) group=500(nginx)

说明本地yum安装nginx成功
#卸载软件使用rpm -e 软件名
yum配置文件简介说明及命令介绍
cat /etc/yum.conf

[main]
cachedir=/var/cache/yum/$basearch/$releasever #yum缓存的目录,存储下载的rpm包和数据库
keepcache=0 #安装完成后是否保留软件包,0为不保留(默认为0)1为 保留
debuglevel=2 #Debug信息输出等级,范围为0-10缺省为2
logfile=/var/log/yum.log #日志文件位置
exactarch=1 #有1和0两个选项,设置为1则yum只会安装和系统架构匹配的软件包
obsoletes=1 #update的参数相当于upgrade允许更新陈旧的RPM包;有2个选项1和0分别表示首是否进行gpg校验以确定每个rpm的来源是有效和安全的。这个选项如果设置在[main]部分则对每个repository都有效,默认为0
gpgcheck=1
plugins=1 #是否启动插件,默认1为允许,0表示不允许
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release #指定一个软件包,yum会根据这个包判断发行版本

yum命令用法
#安装软件包
yum install httpd
yum -y install httpd

#列出软件包,使用list函数,可以搜索带名称的指定软件包
yun list httpd
#搜索软件包
yum search http
#查找某个特定文件属于哪个软件包
yum provides /etc/my.cnf
#列出所有可用的群组
yum grouplist
#安装群组软件包
yum groupinstall 'MySQL Database'
#列出启动的软件库
yum repolist
#安装来自特定软件的软件包
yum --enablerepo=local --disablerepo=base,extras,updates install LNMP
#清理yum缓存内容
yum clean all
#查看yum历史记录
yum history
镜像同步公网yum源
上游yum源必须要支持rsync协议,否则不能使用rsync进行同步
http://mirrors.ustc.edu.cn/status/
#CentOS官方标准源:
rsync://mirrors.ustc.edu.cn/centos/
#epel源
rsync://mirrors.ustc.edu.cn/epel/
#使用rsync同步yum源,为了节省带宽,磁盘和下载时间,这里列举仅同步CentOS6的rpm包,这样所有的rpm包,只占用了21G,全部同步需要300G左右
#同步base源,小技巧我们安装系统的关盘含有部分rpm包,大概3G,这些不用重新下载

/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/yum_data/centos/6/os/x_86_64/
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extra/x86_64/ /data/yum_data/centos/6/extra/x_86_64/
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/update/x86_64/ /data/yum_data/centos/6/update/x_86_64/

#epel源
/usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/centos/epel/6/x_86_64/
下载命令
有些镜像源不支持Rsync协议,比如阿里云、Zabbix官方源
解决办法:
wget -r -p -np -k http://repo.zabbix.com/non-supported/rhel/6/x86_64/

搭建本地YUM仓库的更多相关文章

  1. 如何手工搭建本地Yum仓库

    如何手工搭建本地Yum仓库(重点推荐)  https://www.linuxidc.com/Linux/2016-09/135480.htm CentOS7.2 创建本地YUM源和局域网YUM源: h ...

  2. 其他综合-搭建本地yum仓库及自制rpm包

    搭建本地yum仓库及自制rpm包 实验目的 为方便本地 yum 的管理,建本地 yum 仓库,实现局域网内部快速安装常用软件 实验环境 VMware:12版本 系统版本:CentOS Linux re ...

  3. CentOS7搭建本地YUM仓库,并定期同步阿里云源

    CentOS7同步阿里云镜像rpm包并自建本地yum仓库 系统环境 # cat /etc/centos-release CentOS Linux release 7.6.1810 (Core) # u ...

  4. 在VMware下通过挂载系统光盘搭建本地yum仓库的方法

    一.虚拟机的安装 首先你要有一个VMware虚拟机,没有软件的朋友可以看我的前几篇博客 安装VMware虚拟机 二.进入虚拟机(在这里我们进入一个Linux虚拟机下的CentOS操作系统进行演示) 首 ...

  5. CentOS 7 搭建本地YUM仓库,并定期同步阿里云源

    目录导航: 1. 系统环境 2. 修改yum 源为阿里云源 3. 安装yum相关的软件 4. 根据源标识同步源到本地目录 5. 安装nginx开启目录权限保证本地机器可以直接本地yum源 6. 客户端 ...

  6. linux通过挂载系统光盘搭建本地yum仓库的方法

    1.挂载光盘 [root@localhost ~]# mount /dev/cdrom /media/cdrom/ mount: /dev/sr0 写保护,将以只读方式挂载 /media下的cdrom ...

  7. 通过挂载系统光盘搭建本地yum仓库

    1,配置本地yum源: 把系统光盘挂载到文件夹aaa(aaa为自己创建的文件夹). [root@localhost /]# mount dev/cdrom /aaa 2,修改yum配置文件: yum的 ...

  8. centos 7 搭建本地yum仓库

    首先需要创建一个目录 mkdir /1   #在根目录下创建一个名字为1的目录 将光盘挂载到创建的这个目录 mount /dev/cdrom /1 yum命令配置文件在/etc/yum.repos.d ...

  9. 3、通过挂在系统光盘搭建本地yum仓库的方法

    1. mkdir xxx #新建文件夹 (新建一个挂载需要的文件夹) .配置本地yum源(挂载光盘) .进入 yum.repos.d .ls (查看当前文件夹全部的文件) 并 mv 修改   除Med ...

随机推荐

  1. dubbo中出现can not be invoked any more

    具体错误示例如下 从错误看,是客户方发起调用时,dubbo会去检查本地的invoker instance,如果发现invoker已经是destroy status,则直接抛出上面的异常,下面先来说下平 ...

  2. PowerDesigner列名、注释内容互换

    资料来源:PowerDesigner列名.注释内容互换 文中一共提供了2种操作的代码. (1)将Name中的字符COPY至Comment中 (2)将Comment中的字符COPY至Name中 使用方法 ...

  3. [LC]237题 Delete Node in a Linked List (删除链表中的节点)(链表)

    ①中文题目 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 -- head = [4,5,1,9],它可以表示为: 示例 1: 输入: hea ...

  4. Master原理

    1.主备切换机制原理剖析与源码分析 2.注册机制原理剖析与源码分析 3.状态改变处理机制源码分析 4.资源调度机制源码分析(schedule(),两种资源调度算法)(核心) 一.主备切换机制原理 1. ...

  5. hdu 1907 John (尼姆博弈)

    John Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submis ...

  6. VMware虚拟机Linux中增加磁盘空间的扩容操作

    VMwareware虚拟机安装的Red Hat Enterprise Linux系统剩余空间不足,造成软件无法正常安装.如果重新装一遍系统就需要重新配置好开发环境和软件的安装配置.结合自己的实践,总结 ...

  7. i7-9700也能安装Windows7

    商家说,i7-8700以上不支持Win7,只能安装Win10.我在手机网上也看过同样的说明,是微软与Intel联合行动,意在强迫用户升级到Win10.文章后面有,并不是不能装win7,是没有提供win ...

  8. three.js使用gpu选取物体并计算交点位置

    光线投射法 使用three.js自带的光线投射器(Raycaster)选取物体非常简单,代码如下所示: var raycaster = new THREE.Raycaster(); var mouse ...

  9. [ch02-03] 梯度下降

    系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI, 点击star加星不要吝啬,星越多笔者越努力. 2.3 梯度下降 2.3.1 从自然现象中理解梯度下降 ...

  10. Spring基于注解的配置1——@Required、@Autowired、@Qualifier示例及与传统注入方法的对比

    @Required注释 作用:用于属性的set方法,那么这个属性必须在xml文件的bean标签里面进行配置,否则就会抛出一个BeanInitializationException异常. 首先准备一个类 ...