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>