zoukankan      html  css  js  c++  java
  • CentOS下建立本地YUM源并自动更新

    1. 尽管有很多的免费镜像提供yum源服务,但是还是有必要建立自己的yum服务器,主要出于以下几点考虑:

      l 网络速度:访问互联网可能比较慢

      l 节省带宽:如果有大量的服务器,架设自己的yum源可以有效节省互联网带宽

      l 联网限制:对于有些内网服务器,不能连接到互联网

      l 对于RHEL(Redhat Enterprise Linux),需要购买服务

      l 便于发布自己开发的rpm包

      2. 找到适合你的站点的yum同步源,主要是CentOS标准软件仓库、epel、以及rpmforge

      CentOS标准仓库选择列表

      Asian:

      http://www.centos.org/modules/tinycontent/index.php?id=32

      North American

      http://www.centos.org/modules/tinycontent/index.php?id=30

      Epel源选择列表

      http://mirrors.fedoraproject.org/publiclist/EPEL/

      Rpmforge源

      http://apt.sw.be/

      要选尽量离你的local服务器近的地区,并支持RSYNC,方便更新同步

      我选择的是Linux Kernel Archives

      CentOS标准软件仓库

      rsync://mirrors.kernel.org/centos

      Epel源

      rsync://mirrors.kernel.org/fedora-epel

      Rpmforge源

      rsync://ftp-stud.fht-esslingen.de/dag

      rsync://mirror.cpsc.ucalgary.ca/dag

      3. 编写同步脚本,根据需求进行自动同步

      [root@cc-system-manager1 bin]# vi update_yum_source.sh

      #!/bin/bash

      #==========================================

      # Program : update_yum_source.sh

      # Info : 定期同步官方 yum 源到本机

      # Version : 2013.03.05 First Release

      #==========================================

      Date=`date +%Y%m%d`

      LogFile="/tmp/update_yum_source.log"

      CentOSTrunkVer="5"

      CentOSCurrentVer="5.9"

      RsyncBin="/usr/bin/rsync"

      RsyncPerm="-avrt --delete --exclude=debug/ --exclude=isos/"

      CentOS_Trunk_Ver_Path="/servers/yum_update/$CentOSTrunkVer"

      CentOS_Current_Ver_Path="/servers/yum_update/$CentOSCurrentVer"

      YumSiteList="rsync://mirrors.kernel.org/centos"

      echo "---- $Date `date +%T` Begin ----" >>$LogFile

      # centos 5

      $RsyncBin $RsyncPerm $YumSiteList/$CentOSTrunkVer/

      $CentOS_Trunk_Ver_Path/ >> $LogFile

      # centos 5.9

      $RsyncBin $RsyncPerm $YumSiteList/$CentOSCurrentVer/

      $CentOS_Current_Ver_Path/ >> $LogFile

      echo "---- $Date `date +%T` End ----" >> $LogFile

      [root@cc-system-manager1 bin]# vi update_epel_source.sh

      #!/bin/bash

      #==========================================

      # Program : update_epel_source.sh

      # Info : 定期同步官方 epel 源到本机

      # Version : 2013.03.05 First Release

      #==========================================

      Date=`date +%Y%m%d`

      LogFile="/tmp/update_epel_source.log"

      RsyncBin="/usr/bin/rsync"

      RsyncPerm="-avrt --delete --exclude=4/ --exclude=4AS/ --exclude=4ES/ --exclude=4WS/ --exclude=6/ --exclude=testing/"

      #============ epel ==============

      epelSite="rsync://mirrors.kernel.org/fedora-epel"

      epelLocalPath="/servers/epel"

      echo "---- $Date `date +%T` Begin ----" >>$LogFile

      # epel

      $RsyncBin $RsyncPerm $epelSite $epelLocalPath >> $LogFile

      echo "---- $Date `date +%T` End ----" >> $LogFile

      [root@cc-system-manager1 bin]# vi update_rpmforge_socure.sh

      #!/bin/bash

      #==========================================

      # Program : update_rpmforge_source.sh

      # Info : 定期同步官方 rpmforge 源到本机

      # Version : 2013.03.05 First Release

      #==========================================

      Date=`date +%Y%m%d`

      LogFile="/tmp/update_rpmforge_source.log"

      RsyncBin="/usr/bin/rsync"

      RsyncPerm="-avrt --delete --exclude=i386/ --exclude=ppc/ --exclude=source/"

      # rpmforge

      #rpmforgeSite="rsync://apt.sw.be/redhat/el5/en/"

      rpmforgeSite="rsync://ftp-stud.fht-esslingen.de/dag/redhat/el5/en/"

      rpmforgeLocalPath="/servers/rpmforge"

      echo "---- $Date `date +%T` Begin ----" >>$LogFile

      # rpmforge

      $RsyncBin $RsyncPerm $rpmforgeSite $rpmforgeLocalPath >> $LogFile

      echo "---- $Date `date +%T` End ----" >> $LogFile

      4. 在apache的配置文件里做好相应的软连接或者修改主目录指向

      cd /var/www/html/

      ln -s /servers/yum_update/ yum

      ln -s /servers/epel epel

      ln -s /servers/rpmforge rpmforge

      5. 分别创建3个repo的配置文件,指向本地源所在的服务器,注意目录

      [root@cc-monitor yum.repos.d]# vi CentOS-Base.repo

      [base]

      name=CentOS-$releasever - Base

      baseurl=http://172.25.6.8/yum/$releasever/os/$basearch/

      gpgcheck=1

      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

      #released updates

      [updates]

      name=CentOS-$releasever - Updates

      baseurl=http://172.25.6.8/yum/$releasever/updates/$basearch/

      gpgcheck=1

      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

      #packages used/produced in the build but not released

      [addons]

      name=CentOS-$releasever - Addons

      baseurl=http://172.25.6.8/yum/$releasever/addons/$basearch/

      gpgcheck=1

      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

      #additional packages that may be useful

      [extras]

      name=CentOS-$releasever - Extras

      baseurl=http://172.25.6.8/yum/$releasever/extras/$basearch/

      gpgcheck=1

      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

      #additional packages that extend functionality of existing packages

      [centosplus]

      name=CentOS-$releasever - Plus

      baseurl=http://172.25.6.8/yum/$releasever/centosplus/$basearch/

      gpgcheck=1

      enabled=0

      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

      #contrib - packages by Centos Users

      [contrib]

      name=CentOS-$releasever - Contrib

      baseurl=http://172.25.6.8/yum/$releasever/contrib/$basearch/

      gpgcheck=1

      enabled=0

      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

      [root@cc-monitor yum.repos.d]# vi epel.repo

      [epel]

      name=Extra Packages for Enterprise Linux 5 - $basearch

      baseurl=http://172.25.6.8/epel/5/$basearch

      failovermethod=priority

      enabled=1

      gpgcheck=1

      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

      [epel-debuginfo]

      name=Extra Packages for Enterprise Linux 5 - $basearch - Debug

      baseurl=http://172.25.6.8/epel/5/$basearch/debug

      failovermethod=priority

      enabled=0

      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

      gpgcheck=1

      [epel-source]

      name=Extra Packages for Enterprise Linux 5 - $basearch - Source

      baseurl=http://172.25.6.8/epel/5/SRPMS

      failovermethod=priority

      enabled=0

      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

      gpgcheck=1

      [root@cc-monitor yum.repos.d]# vi rpmforge.repo

      [rpmforge]

      name = RHEL $releasever - RPMforge.net - dag

      baseurl = http://172.25.6.8/rpmforge/$basearch/rpmforge

      enabled = 1

      protect = 0

      gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge

      gpgcheck = 1

      [rpmforge-extras]

      name = RHEL $releasever - RPMforge.net - extras

      baseurl = http://172.25.6.8/rpmforge/$basearch/extras

      enabled = 0

      protect = 0

      gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge

      gpgcheck = 1

      [rpmforge-testing]

      name = RHEL $releasever - RPMforge.net - testing

      baseurl = http://172.25.6.8/rpmforge/$basearch/testing

      enabled = 0

      protect = 0

      gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge

      gpgcheck = 1

      6. 检查gpg key是否完整

      [root@cc-monitor ~]# ll /etc/pki/rpm-gpg/

      total 24

      -rw-r--r-- 1 root root 1512 Apr 25 2010 RPM-GPG-KEY-beta

      -rw-r--r-- 1 root root 1504 Apr 25 2010 RPM-GPG-KEY-CentOS-5

      -rw-r--r-- 1 root root 1698 Apr 15 2012 RPM-GPG-KEY-EPEL

      如果缺少gpg key可以用rpm导入

      #在本地yum源服务器

      wget http://apt.sw.be/RPM-GPG-KEY.dag.txt

      mv RPM-GPG-KEY.dag.txt RPM-GPG-KEY-rpmforge

      #在需要yum安装的客户端执行

      rpm --import http://172.25.6.8/rpmforge/RPM-GPG-KEY-rpmforge

      7. 测试三种Yum源是否可行

      #情况缓存

      [root@cc-monitor ~]# yum clean all

      Loaded plugins: fastestmirror

      Cleaning up Everything

      #列出可用的仓库一共有22465的可用包

      [root@cc-monitor ~]# yum repolist

      repo id repo name status

      addons enabled: 0 CentOS-5 - Addons

      base enabled: 3,641 CentOS-5 - Base

      epel enabled: 7,244 Extra Packages for Enterprise Linux 5 - x86_64

      extras enabled: 266 CentOS-5 - Extras

      rpmforge enabled: 11,158 RHEL 5 - RPMforge.net - dag

      updates enabled: 156 CentOS-5 - Updates

      repolist: 22,465

      测试CentOS标准软件仓库

      [root@cc-monitor ~]# yum install nspr nspr-devel

      Loaded plugins: fastestmirror

      Determining fastest mirrors

      Resolving Dependencies

      --> Running transaction check

      ---> Package nspr.i386 0:4.9.2-2.el5_9 set to be updated

      ---> Package nspr.x86_64 0:4.9.2-2.el5_9 set to be updated

      ---> Package nspr-devel.i386 0:4.9.2-2.el5_9 set to be updated

      ---> Package nspr-devel.x86_64 0:4.9.2-2.el5_9 set to be updated

      --> Finished Dependency Resolution

      测试epel

      [root@cc-monitor ~]# yum install nginx

      Loaded plugins: fastestmirror

      Loading mirror speeds from cached hostfile

      Setting up Install Process

      Resolving Dependencies

      --> Running transaction check

      ---> Package nginx.x86_64 0:0.8.55-2.el5 set to be updated

      --> Processing Dependency: libxslt.so.1()(64bit) for package: nginx

      --> Processing Dependency: libgd.so.2()(64bit) for package: nginx

      --> Processing Dependency: libexslt.so.0()(64bit) for package: nginx

      --> Processing Dependency: libGeoIP.so.1()(64bit) for package: nginx

      --> Running transaction check

      ---> Package GeoIP.x86_64 0:1.4.8-1.el5 set to be updated

      ---> Package gd.x86_64 0:2.0.33-9.4.el5_4.2 set to be updated

      --> Processing Dependency: pkgconfig for package: gd

      --> Processing Dependency: libXpm.so.4()(64bit) for package: gd

      ---> Package libxslt.x86_64 0:1.1.17-4.el5_8.3 set to be updated

      --> Running transaction check

      ---> Package libXpm.x86_64 0:3.5.5-3 set to be updated

      ---> Package pkgconfig.x86_64 1:0.21-2.el5 set to be updated

      --> Finished Dependency Resolution

      测试rpmforge

      [root@cc-monitor ~]# yum install htop

      Loaded plugins: fastestmirror

      Loading mirror speeds from cached hostfile

      rpmforge

      Setting up Install Process

      Resolving Dependencies

      --> Running transaction check

      ---> Package htop.x86_64 0:1.0.2-1.el5.rf set to be updated

      --> Finished Dependency Resolution

  • 相关阅读:
    数据查询
    泰勒展开及其应用
    搜索排序算法
    因子分解机 FM
    偏差方差分解
    Softmax 损失-梯度计算
    目标检测网络之 Mask R-CNN
    目标检测网络之 R-FCN
    深度学习-conv卷积
    目标检测网络之 YOLOv3
  • 原文地址:https://www.cnblogs.com/94YY/p/3873432.html
Copyright © 2011-2022 走看看