LINUX Howto
4-3.How to make the RedHatLinux8.0 custom CD

@ UpdateRPMとOldRPMファイルの入替え
 入手したUpdateRPMと既存のRPMを比較し新しい時は入替える
 古いファイルは念のためバックアップしておく
 バックアップ先:
 $mkdir -p /mnt/temp/update/RedHat80/rh80old
 
ひとつずつ確認するのは面倒だワン!
 面倒な作業を今回の環境に合わせて構築している場合、自動でやってくれるシェルを作りました。
 updaterpm.shを使うかたはどうぞ!
 ・updaterpm.shの使い方
 updaterpm.sh RedHatVersion
 $updaterpm.sh 80
 XXX is New RPM.
 XXX is Updated.
 実行中は上記のようなメッセージが出ます。
 
 使用できる環境
 RedHatLinux8.0のファイル・・・/mnt/temp/update/RedHat80/i386以下のあること
 UpdateRPMファイル ・・・・・・/mnt/temp/update/RedHat80/rh80updにあること
 実行中に/mnt/temp/update/RedHat80/rh80oldが作成されます。

こちらで確認はしていないがVer7.0/7.1/7.2についても同様なディレクトリにすればシェル自体は対応しているだワン!
 例)Ver7.1の場合
 /mnt/temp/update/RedHat71/i386に導入ファイル群をコピーする
 /mnt/temp/update/RedHat71/rh71updにUpdateRPMファイルを置く
 $updaterpm.sh 71で実行する

A 環境変数定義
 $export PYTHONPATH=/usr/lib/anaconda
 $export PATH=$PATH:/usr/lib/anaconda-runtime
 $export LD_LIBRARY_PATH=/usr/lib:/usr/X11R6/lib

B hdlistの更新
 $genhdlist /mnt/temp/update/RedHat80/i386

 /mnt/temp/update/RedHat80/i386/RedHat/base以下のhdlist/hdlist2がUpdateされる。

C TRANS.TBLファイルの削除
 $cd /mnt/temp/update/RedHat80/i386
 $find . -name TRANS.TBL -exec rm -f {} \;
このファイルはISOイメージ作成時につくり直すので消すだワン!

D その他変更したいものがある場合はここで行う
 今回はUpdateRPMのみを組み込むことにします。

E pkgorderファイル作成
 この後に行うCDイメージの作成時に必要です。
 $pkgorder /mnt/temp/update/RedHat80/i386 i386 > /tmp/rh80upd.pkg

F Anacondaインストーラー・イメージの再構築
 $buildinstall --comp dist-8.0 --pkgorder /tmp/rh80upd.pkg \
        --version 8.0 --release "Red Hat 8.0 (psyche)" \
        /mnt/temp/update/RedHat80/i386

「V3 DSA signature: NOKEY, key ID db42a60e」こんなwarningがでたら以下のコマンドを実行するだワン!
 $rpm --import /usr/share/rhn/RPM-GPG-KEY

 Building images...
 中省略
 Assembling package list...
 中省略
 retrieving timezones
 中省略
 Running mkfontdir...
 中省略
 Getting pango modules
 中省略
 Getting gtk2 input method modules
 中省略
 Scrubbing trees...
 Compressing .mo files in stage2 images...
 Creating fontconfig cache
 中省略
 Patching python library...
 中省略
 Cleaning ramdisk install images...
 Getting package order...
 中省略
 Wrote /mnt/temp/update/RedHat80/RedHat/base/hdstg1.img (7832k)...
 Building stage2.img
 Wrote /mnt/temp/update/RedHat80/RedHat/base/stage2.img (60556k)
 Cleaning up images
 Writing .discinfo file
 timestamp not specified; using the current time

途中WarningやNotFoundがたくさん出るけどエラーでなければ問題なさそうだワン!

G パーミッションのチェック
 FTPでUpdateファイルを入手した場合、パーミッションがオリジナルと変わってしまっている場合があります。
 permchk.shで確認し間違っている場合は自動的に変更します。
 ・permchk.shの使い方
 permchk.sh RedHatVersion
 $permchk.sh 80

 使用できる環境
 RedHatLinux8.0のファイル・・・/mnt/temp/update/RedHat80/i386以下にあること

こちらで確認はしていないがVer7.0/7.1/7.2についても同様なディレクトリにすればシェル自体は対応しているだワン!
 例)Ver7.1の場合
 RedHatLinux7.1のファイル・・・/mnt/temp/update/RedHat71/i386以下にあること
 $permchk.sh 71で実行する
Ver7.0の場合「70」、Ver7.1の場合「71」、Ver7.2の場合「72」を引数にするだワン!

H CD-Rに焼くために分割
 $splitdistro --fileorder /tmp/rh80upd.pkg /mnt/temp/update/RedHat80 i386
 Splitting tree...
 Creating disc1...
 Creating disc2...
 700.0
 115.776713371
 1.2
 10.0
 573.023286629
 first to move to disc2 is XFree86-devel-4.2.0-72.i386.rpm
 Creating disc3...
 first to move to disc3 is glibc-debug-static-2.3.2-4.80.6.i386.rpm
 688M /mnt/temp/update/RedHat80/i386-disc1
 695M /mnt/temp/update/RedHat80/i386-disc2
 599M /mnt/temp/update/RedHat80/i386-disc3

 今回はSRPMを含まないCDイメージ分割をしました。
 標準のsplitdistroではSRPMを含む分割になるのでPatchを当ててsplitdistroを変更しました。CDイメージも700M MAXになります。
 splitdistroのパッチを当てたい方はこちらをどうぞ!
お約束ですがPatchを当てたことによる不具合、問題などは責任もてません。自己責任でお願いするだワン!

 適用方法:
 $cd /usr/lib/anaconda-runtime
 $patch -p0 < patch.splitdistro.80

 それぞれ/mnt/temp/update/RedHat80以下にi386-disc1からi386-disc3のディレクトリに分割されます。

I 分割後のhdlist再構築
 古いhdlist/hdlist2の削除
 $rm -f /mnt/temp/update/RedHat80/i386-disc1/RedHat/base/hdlist*
 再構築
 $genhdlist --withnumbers --fileorder /tmp/rh80upd.pkg \
       /mnt/temp/update/RedHat80/i386-disc[123]




直線上に配置