将 它 们 合 并 到 原 来 的 软 件 包 和 定 制 的 软 件 包 。 下 载 文 件 并 解 压 缩 后 , 您 可 以 在
/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.