最好是 Web 服务器运行要升级到的 Red Hat Linux 版本。 如果它运行的是早期版本,那么不要在这台机器上重建操作系统,并从较新版本的操作系统安装 anaconda-runtime。
使用镜像工具(如 wget)将 Linux 发行版复制到本地 Web 服务器。 或者,文件可以从发行版 CD 复制到 Web 服务器。
bash$ mkdir --mode=664 --parents /var/www/html/redhat/linux/7.1/en/os/i386 bash$ umask 002 bash$ wget -nh -nH -r -N -nr -l0 -k -np -X SRPMS ftp://ftp.redhat.com/pub/redhat/linux/7.1/en/os/i386/ -P /var/www/html/redhat/linux/7.1/en/os/i386 |
最好使用镜像站点,而不是上面示例中使用的 Red Hat 的 FTP 站点。
非常重要的是不要在此过程中获取文件。 删除由 FTP 服务器、Web 服务器和 CD-ROM 生成的任何文件。
bash$ cd /var/www/html/redhat bash$ # Files added by FTP server bash$ find . -name '.listing' -print -exec rm {} \; bash$ find . -name 'ls-*' -print -exec rm {} \; bash$ # Files added by a wget from a HTTP server bash$ find . -name '\?*' -print -exec rm {} \; bash$ # Files added by a CD-ROM bash$ find . -name 'TRANS.TBL' -print -exec rm {} \; |
我们现在需要将最新的更新添加到分布式软件中。 这样做是为了避免机器在升级后立即受到攻击。
添加更新对于 Red Hat Linux 7.1 至关重要,请参阅 A.2 节。
从 ftp://ftp.redhat.com/pub/updates/7.1/en/os/ 的子目录中收集更新 RPM。i386, i486, i586 i686, images和noarch.
将这些更新合并到发行版的副本中。 对于每个更新的 RPM 文件,删除原始 RPM 文件,然后用更新的 RPM 文件替换它。 例如
bash$ cd /var/www/html/redhat/linux/7.1/en/os/i386/RedHat/RPMS bash$ ls /var/www/html/redhat/updates/7.1/en/os/i386 SysVinit-2.78-17.i386.rpm bash$ ls SysVinit-*.rpm SysVinit-2.78-15.i386.rpm bash$ rm SysVinit-2.78-15.i386.rpm bash$ cp /var/www/html/redhat/updates/7.1/en/os/i386/SysVinit-2.78-17.i386.rpm . bash$ chmod u=rw,g=r,o=r SysVinit-2.78-17.i386.rpm |
将 RPM 从updatessubdirectoriesi386, i686和noarch到/var/www/html/redhat/linux/7.1/en/os/i386/RedHat/RPMS. 将文件从目录/var/www/html/redhat/updates/7.1/en/os/images到目录/var/www/html/redhat/linux/7.1/en/os/i386/images.
文件/var/www/html/redhat/linux/7.1/en/os/i386/RedHat/base/hdlist和hdlist2包含要安装的 RPM 列表。 这需要修改以包含更新的 RPM 的名称。
安装anaconda-runtime HTTP 服务器上的 RPM。 此 RPM 应与要升级到的 Red Hat Linux 版本相同。
现在创建一个新的hdlist使用以下命令
bash$ cd /usr/lib/anaconda-runtime bash$ rm /var/www/html/redhat/linux/7.1/en/os/i386/RedHat/base/hdlist* bash$ umask 002 bash$ ./genhdlist --withnumbers --hdlist /var/www/html/redhat/linux/7.1/en/os/i386/RedHat/base/hdlist /var/www/html/redhat/linux/7.1/en/os/i386 |
现在,发行版加上更新可以用于网络安装。 它们不能用于 CD 安装,但这与我们无关。
由于发行版加上更新与原始发行版不同,我们不应使用原始发行版的版本号。 附加应用更新的日期似乎是最好的。