Fedora 11 和Centos 构建本地Yum仓库

85096220 2009-08-18

Fedora 11推出后,Linux在桌面上的易用性大为提高,具备在办公/开发环境部署的可能性。
但才发布几天,yum update要下载的升级包竟然接近200M, 没办法,这是开源软件无法避免的,补丁频繁肯定。
为了避免内网机器重复下载相同文件,可以创建一个升级仓库内网私用。
-
[服务端仓库创建和配置]
1.安装创建仓库的工具
  yum install createrepo

2.创建目录结构
  mkdir -p /xxxxxxx/repos/yum/fedora/base/11/i386
  mkdir -p /xxxxxxx/repos/yum/fedora/updates/11/i386
  注:/xxxxxxx/是任意选定的文件系统路径

3.复制DVD的文件到到base目录
  mount -o loop,ro Fedora11-i386-DVD.iso /mnt/iso
  cp -v /mnt/iso/Packages/* /xxxxxxx/repos/yum/fedora/base/11/i386
  umount /mnt/iso

4.DVD光盘只包含基本的安装包集合,如果需要所有安装包,先执行下面:(不同镜像任选其一)
  rsync -avrt –progress rsync://ftp.jaist.ac.jp/pub/Linux/Fedora/releases/11/Everything/i386/os/Packages/ /xxxxxxx/repos/yum/fedora/base/11/i386
  rsync -avrt –progress rsync://mirror.anl.gov/fedora/linux/releases/11/Everything/i386/os/Packages/ /xxxxxxx/repos/yum/fedora/base/11/i386
  注1:rsync语法要求严格,目录同步不能缺少源路径最后的”/”
  注2:请在http://mirrors.fedoraproject.org/publiclist/Fedora/11/页面中中找一个合用的rsync镜像

5.创建仓库所需要的数据结构文件
  createrepo /xxxxxxx/repos/yum/fedora/base/11/i386
  会生成/xxxxxxx/repos/yum/fedora/base/11/i386/repodata目录,里面包含若干xml和gz文件

6.同步updates目录
  rsync -avrt –progress rsync://ftp.jaist.ac.jp/pub/Linux/Fedora/updates/11/i386/ –exclude=debug/ /xxxxxxx/repos/yum/fedora/updates/11/i386

7.生成cron任务定期自动更新updates
  crontab -e (每天晚上2时40分更新)
  40 2 * * * /usr/bin/rsync -avrt rsync://mirror.anl.gov/fedora/linux/updates/8/i386/ –exclude=debug/ /xxxxxxx/repos/yum/fedora/updates/11/i386

8.配置httpd供访问

基本上就是生成别名www.adbrite.cc或命名虚拟主机方式进行访问了
下面是基于名称的虚拟主机的配置方式
 cat 000-default
NameVirtualHost *:80
<VirtualHost *:80>
  DocumentRoot “/var/www/html”
  <Directory />
  Options FollowSymLinks
  AllowOverride None
  </Directory>
  <Directory “/var/www/html”>
  Options Indexes FollowSymLinks
  AllowOverride None
  Order allow,deny
  Allow from all
  </Directory>
</VirtualHost>
<VirtualHost *:80>
  ServerAdmin admin@localdomain
  DocumentRoot /xxxxx/repos
  ServerName updates.domain.net
  DirectoryIndex index.html
  LogLevel debug
  ErrorLog logs/updates.domain.net-error_log
  CustomLog logs/updates.domain.net-access_log common

  <location / >
  Options Indexes
  Order allow,deny
  allow from all
  </location>
</VirtualHost>

相关推荐