当前位置: 首页 > news >正文

搭建YUM仓库

搭建YUM仓库

 

概述

  YUM 主要用于自动安装、升级 rpm 软件包,它能自动查找并解决 rpm 包之间的依赖关系。要功的使用 YUM 工具安装更新软件或系统,就需要有一个包含各种 rpm 软件包的 repository(件仓库),这个软件仓库我们习惯称为 yum 源。网络上有大量的 yum 源,但由于受到网络环的限制,导致软件安装耗时过长甚至失败。特别是当有大量服务器大量软件包需要安装时,慢的进度条令人难以忍受。因此我们在优化系统时,都会更换国内的源。相比较而言,本地 YUM 源服务器最大优点是局域网的快速网络连接和稳定性。有了局域网中YUM 源服务器,即便在 Internet 连接中断的情况下,也不会影响其他 YUM 客户端的软件安装升级。

1.YUM是什么?

  YUM(Yellow Dog Updater Modified)为多个 Linux 发行版的软件包管理器,例如 Redhad RHEL、CentOS & Fedora。YUM 主要用于自动安装,升级 rpm 软件包,他能自动查找并解决 rpm 包的依赖关系,YUM 自动下载 YUM 包并安装,类似软件管家的一键安装功能。

2.YUM源是什么

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

搭建内网中的YUM源

系统:CentOS6.5

YUM 源配置文件的存放路径

复制代码
[root@aery ~]# cd /etc/yum.repos.d/
[root@aery yum.repos.d]# ls
CentOS-Base.repo CentOS-Base.repo.bak
CentOS-Media.repo CentOS-Debuginfo.repo 
CentOS-Vault.repo
复制代码

对比修改后的 YUM 源与原 YUM 配置文件的区别

[root@aery yum.repos.d]# vimdiff CentOS-Base.repo CentOS-Base.repo.bak

服务端配置

1. 创建目录用来做YUM仓库使用

[root@aery ~]# mkdir /yum_source
复制代码
[root@aery ~]# cd /yum_source/
[root@aery yum_source]# 
  # 上传 rpm 包到此目录,此目录下面还可以包括文件夹
  获取 rpm 软件包的几种方法
   (1) 开启 YUM 缓存
   (2) yumdownloader pcre-devel openssl-devel # 只下载软件不安装,作为忘记开启YUM 缓存的补救手段
复制代码

 我们这里使用系统光盘中的RPM包作为我们YUM仓库的YUM源文件

[root@aery yum_source]# mount /dev/cdrom /mnt/            //挂载系统光盘
[root@aery yum_source]# cp /mnt/Packages/* /yum_source/        //将光盘下的所有rpm包拷贝到我们创建的YUM仓库的目录下

2. 安装 createrepo 软件,用于生成 yum 仓库数据库的软件

[root@aery ~]# yum -y install createrepo        //安装createrepo(YUM仓库软件)软件
[root@aery ~]# rpm -q createrepo            //检查软件是否安装

3. 初始化 repodata 索引文件(每次发布新的内容都需要更新)

更多createrepo命令的使用参考:http://linux.51yip.com/search/createrepo

复制代码
[root@aery ~]# createrepo -pdo /yum_source/ /yum_source/        //初始化
Spawning worker 0 with 3995 pkgs
......        //部分内容省略
Sqlite DBs complete
[root@aery ~]# createrepo --update /yum_source/                //每加入一个rpm包就要更新一次
复制代码

4. 使用 python 命令开启 80 端口,(要求在 rpm 的路径下执行此命令,)此命令的功能就是通过浏览器把内容发布出去

[root@aery ~]# cd /yum_source/
[root@aery yum_source]# python -m SimpleHTTPServer 80 &> /dev/null &
[1] 3729

5. 提供 web 服务查看 80 端口是否开启

[root@aery yum_source]# lsof -i :80
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python  3729 root    3u  IPv4  29903      0t0  TCP *:http (LISTEN)

打开浏览器测试

客户端配置

复制代码
[root@aery ~]# curl -I 192.168.1.105                //检查 YUM 发布的页面客户端是否可以访问
HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/2.6.6
Date: Sat, 23 Sep 2017 09:51:43 GMT
Content-type: text/html; charset=UTF-8
Content-Length: 376140

[root@aery ~]# cd /etc/yum.repos.d/                //切换到 yum 配置文件
[root@aery yum.repos.d]# mkdir bak                //创建一个存放暂时不用的yum源配置文件目录
[root@aery yum.repos.d]# mv CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo bak/    //将暂时不用的yum源配置文件移动到其他目录
[root@aery yum.repos.d]# > CentOS-Base.repo             //清空 yum 配置文件
[root@aery yum.repos.d]# vim CentOS-Base.repo             //编辑 YUM 配置文件
[inside] 
name=inside yum source
baseurl=http://192.168.1.105
enabled=1
gpgcheck=0

[root@aery yum.repos.d]# yum clean all                //需要先清除 yum 以前的缓存
Loaded plugins: fastestmirror, refresh-packagekit, security
Cleaning repos: inside
Cleaning up Everything
[root@aery yum.repos.d]# yum makecache                //更新 YUM 缓存
复制代码

 安装DNS服务测试

复制代码
[root@aery ~]# yum -y install bind
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package bind.x86_64 32:9.8.2-0.17.rc1.el6_4.6 will be installed
--> Finished Dependency Resolution
...... //部分内容省略
复制代码

 

转载于:https://www.cnblogs.com/skyhu365/p/10594618.html

相关文章:

  • 【springboot】 mybatis 集成代码生成器 shiro 权限 后台框架平台
  • 程序员跳槽高峰期:BAT面试合集JVM+Spring+数据库+中间件等
  • 项目总结21:项目总结21:input实现多图上传(FormData)(上传OSS并保存数据库)
  • 04C++const增强、枚举的增强
  • 阿里云API、SDK和CLI应用实践方案
  • 带你开发类似Pokemon Go的AR游戏
  • Ubuntu18.04安装netstat
  • 「实战篇」开源项目docker化运维部署-搭建mysql集群(四)
  • 同城艺龙code
  • main.js中封装全局登录函数
  • Greenplum 5.16.0初探
  • Gym - 100920E 2010-2011 OpenCup IX Onsite, II Yandex Summer School E.Paint 状压DP
  • 第三章:回收方法区
  • Kubernetes Ingress 日志分析与监控的最佳实践
  • MAYA安装未完成,某些产品无法安装的解决方法
  • bootstrap创建登录注册页面
  • create-react-app项目添加less配置
  • Docker下部署自己的LNMP工作环境
  • emacs初体验
  • ES6 学习笔记(一)let,const和解构赋值
  • es6(二):字符串的扩展
  • GitUp, 你不可错过的秀外慧中的git工具
  • golang 发送GET和POST示例
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Javascript弹出层-初探
  • Java多态
  • windows下如何用phpstorm同步测试服务器
  • 构建工具 - 收藏集 - 掘金
  • 汉诺塔算法
  • 什么软件可以剪辑音乐?
  • 阿里云ACE认证学习知识点梳理
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​学习一下,什么是预包装食品?​
  • #Lua:Lua调用C++生成的DLL库
  • (23)Linux的软硬连接
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (九)One-Wire总线-DS18B20
  • (利用IDEA+Maven)定制属于自己的jar包
  • (三十五)大数据实战——Superset可视化平台搭建
  • (转)Linq学习笔记
  • ****Linux下Mysql的安装和配置
  • ***检测工具之RKHunter AIDE
  • .cfg\.dat\.mak(持续补充)
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET 5种线程安全集合
  • .NET Core Web APi类库如何内嵌运行?
  • .net的socket示例
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET基础篇——反射的奥妙
  • .NET中使用Protobuffer 实现序列化和反序列化
  • @Autowired @Resource @Qualifier的区别
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)
  • [C++]模板与STL简介