- 论坛徽章:
- 0
|
1.事实上,很多时候会用到本地的yum服务器,不仅仅是因为国内的镜像少,速度慢,不连线到公网的机器有时候也有这个必要
2.本文是以实际环境为例,简单的说明一下配置情况,办法很土,呵呵
3.环境(CentOS 5.3 64位)
一台web服务器,在公网,内网ip是172.20.4.18
另外一台db服务器只在内网,ip是172.20.3.201
4.找一台速度较快的带rsync服务的镜像网站
从这里找:http://www.centos.org/modules/tinycontent/index.php?id=13
我选了新加坡的一个:rsync://mirror.averse.net/centos/5.2/ 具体根据自己的网络情况而定
5.172.20.4.18正好是web服务器,直接就可以利用,找一个web目录,例如/var/www/html/centos
# mkdir -p /var/www/centos
6.同步需要的软件到web目录下,例如:(由于系统的64位的,我屏蔽了i386目录,debug的东西也用不到,所以也屏蔽了debug,还需要有屏蔽,自己根据需要来,--exclude支持正则的 :))
# rsync -avrt rsync://mirror.averse.net/centos/5.3/ --exclude=debug/ --exclude=i386/ --exclude=isos/ /yum/Centos
# rsync -avrt rsync://mirror.averse.net/centos/RPM-GPG-KEY-CentOS-5 /yum/Centos/
等待完成……
完成了之后,可以做一个计划任务,隔段时间更新一下,
7.在172.20.3.201上配置yum,打开/etc/yum.repos.d/CentOS-Base.repo
替换内容如下:
[base]
name=CentOS-5 - Base
baseurl=http://172.20.4.18/centos/os/$basearch/
gpgcheck=1
gpgkey=http://172.20.4.18/centos/RPM-GPG-KEY-CentOS-5
#released updates
[update]
name=CentOS-5 - Updates
baseurl=http://172.20.4.18/centos/updates/$basearch/
gpgcheck=1
gpgkey=http://172.20.4.18/centos/RPM-GPG-KEY-CentOS-5
#packages used/produced in the build but not released
[addons]
name=CentOS-5 - Addons
baseurl=http://172.20.4.18/centos/addons/$basearch/
gpgcheck=1
gpgkey=http://172.20.4.18/centos/RPM-GPG-KEY-CentOS-5
#additional packages that may be useful
[extras]
name=CentOS-5 - Extras
baseurl=http://172.20.4.18/centos/extras/$basearch/
gpgcheck=1
gpgkey=http://172.20.4.18/centos/RPM-GPG-KEY-CentOS-5
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-5 - Plus
baseurl=http://172.20.4.18/centos/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://172.20.4.18/centos/RPM-GPG-KEY-CentOS-5
#contrib - packages by Centos Users
[contrib]
name=CentOS-5 - Contrib
baseurl=http://172.20.4.18/centos/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://172.20.4.18/centos/RPM-GPG-KEY-CentOS-5
8.在内网172.20.3.201上就可以正常使用yum来安装或者升级软件啦
问题:
在172.20.3.201上做yum镜像更新时,出现如下报错:
http://172.20.4.18/centos/os/x86_64/repodata/filelists.sqlite.bz2
: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
Error: failure: repodata/filelists.sqlite.bz2 from base: [Errno 256] No more mirrors to try.
原因:在网上根据"filelists.sqlite.bz2: [Errno 14] HTTP Error 404: Not Found"做关键字搜索,没有找到类似答案,后在用 yum update 更新时,发现有以下错误(红色字体部分):
[root@test-01 yum.repos.d]# yum install python
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
base | 1.1 kB 00:00
Not using downloaded repomd.xml because it is older than what we have:
Current : Fri Oct 2 00:59:00 2009
Downloaded: Sat Mar 21 21:08:23 2009
updates | 951 B 00:00
Not using downloaded repomd.xml because it is older than what we have:
Current : Fri Jan 8 09:14:58 2010
Downloaded: Wed Sep 16 03:04:58 2009
addons | 951 B 00:00
Not using downloaded repomd.xml because it is older than what we have:
Current : Tue Oct 20 04:25:07 2009
Downloaded: Tue Feb 20 07:34:15 2007
extras | 1.1 kB 00:00
Not using downloaded repomd.xml because it is older than what we have:
Current : Fri Nov 6 04:40:52 2009
Downloaded: Tue Sep 1 21:26:12 2009
这个错误提示为我找到了问题的根源在何上.根据提示,可以判断出应该是172.20.3.201计算机的yum 文件 repomd.xml 文件的更新日期要比yum服务器172.20.4.18 上的yum文件repomd.xml要新引起的,yum的更新原则应该是只使用最新的一份更新文件.
解决方法:将172.20.4.18上相应目录下(os/x86_61/repodata/repomd.xml update/x86_61/repodata/repomd.xml addons/x86_61/repodata/repomd.xml extras/x86_61/repodata/repomd.xml)的更新文件替换172.20.3.201 上 /var/cache/yum 目录下的相应文件,然后再用 yum update 更新即可.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/62871/showart_2144097.html |
|