zoukankan      html  css  js  c++  java
  • 搭建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
    ...... //部分内容省略
    复制代码
  • 相关阅读:
    Spring(4)——面向切面编程(AOP模块)
    Spring(3)——装配 Spring Bean 详解
    Spring(2)——Spring IoC 详解
    Spring学习(1)——快速入门
    彼得原理(The Peter Principle)
    默菲定律 [Murphy's Law]
    EXTJS 表单提交
    在java 中,数组与 List<T> 类型的相互转换
    Eclipse 工作目录被破坏,导致Eclipse 打不开
    EXTJS 密码确认与验证
  • 原文地址:https://www.cnblogs.com/skyhu365/p/10594618.html
Copyright © 2011-2022 走看看