C.5. HTTP サーバーを準備する

ウェブサーバーが、 これからアップグレードするバージョンの、 Red Hat Linux で動いているなら最高です。 しかし以前のバージョンが動いている場合は、 オペレーティングシステムを再構築せず、 もっと新しいバージョンのオペレーティングシステムから、 anaconda-runtime をインストールして下さい。

wget のようなミラーリングユーティリティを使って、 Linux のディストリビューションを、ローカルのウェブサーバーにコピーします。 あるいは、ディストリビューション CD から、ウェブサーバーにコピーしてもかまいません。

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 サーバー、ウェブサーバー、それに CD-ROM が作ったファイルは、いずれも削除して下さい。

bash$ cd /var/www/html/redhat
bash$ # FTP サーバーが追加したファイル
bash$ find . -name '.listing' -print -exec rm {} \;
bash$ find . -name 'ls-*' -print -exec rm {} \;
bash$ # HTTP サーバーから wget で追加したファイル
bash$ find . -name '\?*' -print -exec rm {} \;
bash$ # CD-ROM で追加したファイル
bash$ find . -name 'TRANS.TBL' -print -exec rm {} \;

今度は配布されているソフトウェアに、 最新のアップデートを追加する必要があります。 これは、すぐにアップグレードしてしまうと、 マシンが危険な状態になるので、それを避けるためです。

Red Hat Linux 7.1 では、 アップデートの追加は欠かせません。 Section A.2を参照して下さい。

ftp://ftp.redhat.com/pub/updates/7.1/en/os/ にあるサブディレクトリ、 i386, i486, i586, i686, images, noarch から RPM のアップデートを集めて下さい。 [1]

これらのアップデートを、 ディストリビューションのコピーとマージして下さい。 アップデートする、 それぞれの 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

updates のサブディレクトリ i386, i686, noarch にある RPM を、 /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 の名前を記載してください。

HTTP サーバーには anaconda-runtime 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 インストールでは使えませんが、 この場合は関係ありません。

このアップデートを追加したディストリビューションは、 オリジナルのディストリビューションとは別のものなので、 オリジナルディストリビューションのバージョン番号は使わない方が良いです。 そのアップデートを適用した日付を後ろに付けるのが、うまい方法です。

bash$ cd /var/www/html/redhat/linux/
bash$ mv 7.1 7.1-20020202

Notes

[1]

訳注:2002 年 6 月 17 日現在、当該アップデートは ftp://updates.redhat.com/7.1/en/os/ になっているようです。