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/ C e n t O S T r u n k V e r " C e n t O S C u r r e n t V e r P a t h = " / s e r v e r s / y u m u p d a t e / CentOSTrunkVer" CentOS_Current_Ver_Path="/servers/yum_update/ CentOSTrunkVer"CentOSCurrentVerPath="/servers/yumupdate/CentOSCurrentVer"
YumSiteList=“rsync://mirrors.kernel.org/centos”
echo "---- D a t e ‘ d a t e + Date `date +%T` Begin ----" >> Datedate+LogFile

centos 5

$RsyncBin $RsyncPerm Y u m S i t e L i s t / YumSiteList/ YumSiteList/CentOSTrunkVer/
$CentOS_Trunk_Ver_Path/ >> $LogFile

centos 5.9

$RsyncBin $RsyncPerm Y u m S i t e L i s t / YumSiteList/ 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 "---- D a t e ‘ d a t e + Date `date +%T` Begin ----" >> Datedate+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 "---- D a t e ‘ d a t e + Date `date +%T` Begin ----" >> Datedate+LogFile

rpmforge

$RsyncBin $RsyncPerm $rpmforgeSite $rpmforgeLocalPath >> $LogFile
echo “---- $Date date +%T End ----” >> KaTeX parse error: Expected 'EOF', got '#' at position 215: …or yum.repos.d]#̲ vi CentOS-Base…releasever - Base
baseurl=http://172.25.6.8/yum/ r e l e a s e v e r / o s / releasever/os/ releasever/os/basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
#released updates
[updates]
name=CentOS- r e l e a s e v e r − U p d a t e s b a s e u r l = h t t p : / / 172.25.6.8 / y u m / releasever - Updates baseurl=http://172.25.6.8/yum/ releaseverUpdatesbaseurl=http://172.25.6.8/yum/releasever/updates/KaTeX parse error: Expected 'EOF', got '#' at position 74: …G-KEY-CentOS-5 #̲packages used/p…releasever - Addons
baseurl=http://172.25.6.8/yum/ r e l e a s e v e r / a d d o n s / releasever/addons/ 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- r e l e a s e v e r − E x t r a s b a s e u r l = h t t p : / / 172.25.6.8 / y u m / releasever - Extras baseurl=http://172.25.6.8/yum/ releaseverExtrasbaseurl=http://172.25.6.8/yum/releasever/extras/KaTeX parse error: Expected 'EOF', got '#' at position 74: …G-KEY-CentOS-5 #̲additional pack…releasever - Plus
baseurl=http://172.25.6.8/yum/ r e l e a s e v e r / c e n t o s p l u s / releasever/centosplus/ 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- r e l e a s e v e r − C o n t r i b b a s e u r l = h t t p : / / 172.25.6.8 / y u m / releasever - Contrib baseurl=http://172.25.6.8/yum/ releaseverContribbaseurl=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 - b a s e a r c h b a s e u r l = h t t p : / / 172.25.6.8 / e p e l / 5 / basearch baseurl=http://172.25.6.8/epel/5/ basearchbaseurl=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 - b a s e a r c h − D e b u g b a s e u r l = h t t p : / / 172.25.6.8 / e p e l / 5 / basearch - Debug baseurl=http://172.25.6.8/epel/5/ basearchDebugbaseurl=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 r e l e a s e v e r − R P M f o r g e . n e t − d a g b a s e u r l = h t t p : / / 172.25.6.8 / r p m f o r g e / releasever - RPMforge.net - dag baseurl = http://172.25.6.8/rpmforge/ releaseverRPMforge.netdagbaseurl=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 r e l e a s e v e r − R P M f o r g e . n e t − e x t r a s b a s e u r l = h t t p : / / 172.25.6.8 / r p m f o r g e / releasever - RPMforge.net - extras baseurl = http://172.25.6.8/rpmforge/ releaseverRPMforge.netextrasbaseurl=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 r e l e a s e v e r − R P M f o r g e . n e t − t e s t i n g b a s e u r l = h t t p : / / 172.25.6.8 / r p m f o r g e / releasever - RPMforge.net - testing baseurl = http://172.25.6.8/rpmforge/ releaseverRPMforge.nettestingbaseurl=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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值