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
    ...... //部分内容省略
    复制代码
  • 相关阅读:
    【leetcode】1365. How Many Numbers Are Smaller Than the Current Number
    【leetcode】1363. Largest Multiple of Three
    【leetcode】1362. Closest Divisors
    【leetcode】1361. Validate Binary Tree Nodes
    【leetcode】1360. Number of Days Between Two Dates
    【leetcode】1359. Count All Valid Pickup and Delivery Options
    【leetcode】1357. Apply Discount Every n Orders
    【leetcode】1356. Sort Integers by The Number of 1 Bits
    ISE应用入门的一些问题
    DDR的型号问题
  • 原文地址:https://www.cnblogs.com/skyhu365/p/10594618.html
Copyright © 2011-2022 走看看