笔者是一个Red Hat Linux系统管理员,管理着网络中几十台Redhat Linux 9主机。对于Linux这样的开放式系统,和其他私有操作系统(Windows/Solais)相比, 发行商的短期支持策略使得网管经常需要上相应的网站看,是否有补丁,是否有了bug 修复,是否需要升级。千万不要报侥幸心理,否则一个Shell脚本就可能拿下你的网站。套用一句名言:你的服务器永远可能在第二天被黑客接管。
没有经过很好整合和测试的补丁,服务器的维护工作将是一个非常繁重任务。这是因为系统管理员必须跟踪系统里安装的每一个软件包,有时当补丁发布时还要对子系统进行改造。如果把每个Linux主机分别连接到RadHat的升级网站更新补丁,首先会造成企业网络出口阻塞、浪费宽带资源,另外也不安全。这里笔者建立一个独立的APT服务器,管理员可以自己先下载软件包,然后通过网络其他用户可以方便的进行定期升级。 APT服务器上面可以安装多个版本的 Linux 发行版本的的RPM 套件,并且需要提供 WWW服务,因为客户端则是通过服务器的 WWW协议进行 软件包和内核更新。网络拓扑机构见图1。
APT工作原理基本介绍
Debian GNU/Linux 是APT(Advanced Package Tool)的缔造者。初衷是利用工具来解决软件安装时候的依赖性问题。其工作原理大致为:用户安装APT客户端工具,查寻APT服务器端的资料库(repositories)上的RPM软件包信息,并分析软件包之间的依赖性然后下载并进行安装。APT 除了可以让你很方便且快速地安装 RPM 软件外,你也可以用它来更新系统。虽然APT是基于Debian的软件包管理工具,但是已经被一个巴西公司Conectiva移植到基于RPM的系统上。因此对于基于RPM软件包管理的平台,如Red Hat、TurboLinux、SuSe、Mandrake等Linux发行版本,APT是一个非常优秀的软件管理工具。
服务器端APT安装配置
1. 运行APT之前需要确认服务器上Apache 已经可以提供WWW服务,并且 /var 分分区至少还有 5G 的空间。
2. 下载安装APT套件
# wegt http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt/apt-0.5.5cnc6-fr1.i386.rpm
# wegt http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt/apt-devel-0.5.5cnc6-fr1.i386.rpm
#rpm -ivh apt-0.5.5cnc6-fr1.i386.rpm
#rpm -ivh apt-devel-0.5.5cnc6-fr1.i386.rpm
接着需要加入freshrpms.net的公共钥匙GPG-KEY, 然后在/etc/apt下建立一个/gpg文件夹,将GPG-KEY保存在那里,以便日后管理。
# rpm --import http://ftp.freshrpms.net/pub/freshrpms/RPM-GPG-KEY
3、修改配置文件
/etc/apt/sources.list
这是APT服务器上最重要的配置文件,记载了软件仓库服务器的地址等信息,这里只需要把需要升级的版本对应的路径信息打开,其它版本的路径信息则可以关闭。
# Red Hat Linux 9.0
rpm http://apt.freshrpms.net redhat/9/en/i386 os updates freshrpms
rpm-src http://apt.freshrpms.net redhat/9/en/i386 os updates freshrpms
4.使用APT前的准备
(1)安装好APT软件包以后,管理员需要做的第一个工作就是从默认服务器下载软件包数据库运行:
#apt-get update
#apt-get upgrade