系统之家 - Windows操作系统&装机软件下载网站!

当前位置: 首页  >  教程资讯  >  电脑教程 CentOS下建立本地YUM源并自动更新

CentOS下建立本地YUM源并自动更新

时间:2023-06-02 16:16:41 来源: 人气:

  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,

作者

教程资讯

电脑教程排行

系统教程

系统主题