background image

将 它 们 合 并 到 原 来 的 软 件 包 和 定 制 的 软 件 包 。 下 载 文 件 并 解 压 缩 后 , 您 可 以 在

 

/developerworks/rpm_update_scripts 目录下找到脚本。最终结果是一个包括所有
软件包最新版本的目录和一个用于网络安装的升级的

 hdlist 文件。 

  下面的代码片段实现的是对

 Red Hat RPM 软件包的自动更新,以创建一个使用

最新的

 RPM 的可以安装的版本。这对任何一个维护公共 Linux 服务器的人来说是一个

基本的步骤。就我们而言,我们通常是维护许多公共

 Linux 服务器上的大量网络服务。

下面是可以自动完成更新最新的安全和功能的过程的部分脚本。

  下面的脚本样例证明了普通的

 shell 编程技术可以广泛应用于各种系统配置和程

序设计应用。脚本使用的是

 bourne shell,它是在不同的 UNIX 系统中最为常见的 

shell。这样就可以保证这些非常轻便的代码可以稍加修改或者不加修改地在不同的 
UNIX 系统上使用。修改 Red Hat 软件包的规范以应用于其它 Linux 发行版本是很容
易的。

  

freshen.sh 使用指定的 RPM ftp 更新站点上的 RPM 软件包来更新原有的 RPM 

列表。执行过滤器来替换更新

 RPM 软件包。最后,长长的发行列表根据从更新镜像站

点上得到的新

 RPM 软件包完成更新。 

  清单

 1. fresh.sh

#!/bin/sh  
rh_ver=$1  
rh_path=$2  
update_dir=${rh_path}/RH${rh_ver}-updates  
custom_dir=${rh_path}/RH${rh_ver}-custom  
install_dir=${rh_path}/RH${rh_ver}-install  
# Sanity check for the original directory.  
#   Create   update   and   install   directories   if   they   don’t 
exist  
[ -d ${update_dir} ] || mkdir ${update_dir}  
[   -d   ${install_dir}/RedHat/RPMS   ]   ||   mkdir   -p   $
{install_dir}/RedHat/RPMS  
# Get latest updates from fresh rpms FTP site  
./get_update.sh ${rh_ver} ${update_dir}  
#   Create/update   hardlinks   from   update,   and   custom 
directories  
# to the install directory. We assume that original RPMS 
are already  
# hardlinked to the install directory, so all we need to 
do is filter  
# out any replaced by updated packages.