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. Linux 使用记录

      作为web程序员,该掌握的 linux 命令有哪些,稍微高级点的? - 刘志军的回答 - 知乎  https://www.zhihu.com/question/64063454/answer/21 ...

  2. 宋宝华:Linux设备驱动框架里的设计模式之——模板方法(Template Method)

    本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 宋宝华 来源: 微信公众号linux阅码场(id: linuxdev) 前言 <设计模式>这本经典 ...

  3. yum 配置文件 以及 语法

    yum的配置文件 #vi /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever keepcache= debugleve ...

  4. ansible-template

    template简介 template功能: 根据模板文件动态生成对应的配置文件 template文件必须存放于templates目录下,且命名为 .j2 结尾 ansible的template模板使 ...

  5. 软件测试的原则,软件测试计划:5W1H

    1.测试应该尽早介入.        2.所有的测试都应追溯到用户需求.        3.程序员应该避免检查自己的程序.除了单元测试.因为程序员对于自己的作品,思维具有局限性.无法保证测试质量.交给 ...

  6. C# 彻底搞懂async/await

    前言 Talk is cheap, Show you the code first! private void button1_Click(object sender, EventArgs e) { ...

  7. Java方法之定义形式及可变参数

    目录 Java方法之定义形式及可变参数 方法调用 使用static修饰的方法 没有static修饰的方法 方法的定义格式 无参无返 无参有返 有参无返 有参有返 形参个数可变的方法 采用数组形参来定义 ...

  8. Rust入坑指南:鳞次栉比

    很久没有挖Rust的坑啦,今天来挖一些排列整齐的坑.没错,就是要介绍一些集合类型的数据类型."鳞次栉比"这个标题是不是显得很有文化? 在Rust入坑指南:常规套路一文中我们已经介绍 ...

  9. 如何使用Selenium来计算自动化测试的投资回报率?

    跨浏览器测试是一种测试,需要大量的精力和时间.通过不同的浏览器,操作系统,设备,屏幕分辨率测试Web应用程序,以评估针对各种受众的Web内容呈现的过程是一项活动.特别是如果手动处理.使用Seleniu ...

  10. 【Android - 自定义View】之View的measure过程解析

    measure(测量)过程是View的工作流程中最开始.最核心的过程,在这个过程中负责确定View的测量宽/高. 对于View和ViewGroup,measure过程有不同的执行方法:如果目标是一个原 ...