潘无忧 2008-6-13 21:02
Linux网络自动补丁机
笔者是一个Red Hat Linux系统管理员,管理着网络中几十台Redhat Linux 9主机。对于Linux这样的开放式系统,和其他私有操作系统(Windows/Solais)相比, 发行商的短期支持策略使得网管经常需要上相应的网站看,是否有补丁,是否有了bug 修复,是否需要升级。千万不要报侥幸心理,否则一个Shell脚本就可能拿下你的网站。套用一句名言:你的服务器永远可能在第二天被黑客接管。
没有经过很好整合和测试的补丁,服务器的维护工作将是一个非常繁重任务。这是因为系统管理员必须跟踪系统里安装的每一个软件包,有时当补丁发布时还要对子系统进行改造。如果把每个Linux主机分别连接到RadHat的升级网站更新补丁,首先会造成企业网络出口阻塞、浪费宽带资源,另外也不安全。这里笔者建立一个独立的APT服务器,管理员可以自己先下载软件包,然后通过网络其他用户可以方便的进行定期升级。 APT服务器上面可以安装多个版本的 Linux 发行版本的的RPM 套件,并且需要提供 WWW服务,因为客户端则是通过服务器的 WWW协议进行 软件包和内核更新。网络拓扑机构见图1。
[b]APT工作原理基本介绍[/b]
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是一个非常优秀的软件管理工具。
[b]服务器端APT安装配置[/b]
1. 运行APT之前需要确认服务器上Apache 已经可以提供WWW服务,并且 /var 分分区至少还有 5G 的空间。
2. 下载安装APT套件
# wegt [url]http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt/apt-0.5.5cnc6-fr1.i386.rpm[/url]
# wegt [url]http://ftp.freshrpms.net/pub/freshrpms/redhat/9/apt/apt-devel-0.5.5cnc6-fr1.i386.rpm[/url]
#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 [url]http://ftp.freshrpms.net/pub/freshrpms/RPM-GPG-KEY[/url]
3、修改配置文件
/etc/apt/sources.list
这是APT服务器上最重要的配置文件,记载了软件仓库服务器的地址等信息,这里只需要把需要升级的版本对应的路径信息打开,其它版本的路径信息则可以关闭。
# Red Hat Linux 9.0
rpm [url]http://apt.freshrpms.net[/url] redhat/9/en/i386 os updates freshrpms
rpm-src [url]http://apt.freshrpms.net[/url] redhat/9/en/i386 os updates freshrpms
4.使用APT前的准备
(1)安装好APT软件包以后,管理员需要做的第一个工作就是从默认服务器下载软件包数据库运行:
#apt-get update
#apt-get upgrade
潘无忧 2008-6-13 21:03
(2)验证本地系统的完整性和一致性,判断本地系统的软件包依赖性是否一致运行:
# apt-get check
如果希望定期升级系统,保证系统及时升级,弥补安全漏洞,只需要apt-get update、apt-get dist-upgrade或apt-get upgrade就可以了。
(3)安装图形前端
freshrpms.net站点提供了一个图形界面的apt-rpm接口Synaptic,使用图形界面的apt更加方便,可以直接利用apt安装Synaptic:
[root@Linux root]# apt-get install synaptic
在几行提示之后Synaptic就安装好了,进入Xwindow,Synaptic会出现在“系统设置”菜单里面。界面见图2。
5.主要命令
APT主要有apt-cache、apt-cdrom、apt-config和apt-get四个命令,用户使用最多的就是apt-get命令。APT常用命令功能见表1。
命令
描述
apt-get update
更新本地apt-get的本地数据库,使其与服务器的pkglist文件同步。在升级以前一般都要执行本命令实现与服务器的一致。
apt-get check
验证本地系统的完整性。
apt-get dist-upgrade
安装所有的基础软件包,并升级一切软件包,并在需要时安装新软件包。
apt-get remove package_name
删除该软件包,同时会删除依赖于它的软件包。
apt-get install package_name
安装某个软件包及其相关软件包。
apt-get source package_name
下载软件包的source rpm。
apt-get clean
删除保存在缓存目录下(/var/cache/apt/archives)的被下载的软件包。
apt-get upgrade package_name
升级指定的软件包,并升级其依赖的软件包。
apt-cdrom add
自动mount安装光盘并建立列表。
apt-cache depends package_name
显示软件包的依赖性关系。
apt-cache package_name
在网络上搜索指定的软件包
apt-config dump
显示目前的配置信息。
6.建立放置相关source 的目录:
#mkdir -p /var/ftp/pub/redhat/Linux/9/en/os/i386
#mkdir -p /var/ftp/pub/redhat/Linux/updates/9/en/os
7.制作mirror Red Hat Linux 9 source
使用CD-ROM光盘复制所需的 .os 的 到RPM 文件目录:
mount /mnt/cdrom
cp -rf /mnt/cdrom/* /var/ftp/pub/redhat/Linux/9/en/os/i386
umount /mnt/cdrom
依照上面方法,复制第二片、第三片CD-ROM片内的 rpm文件。