| 4-2.How to make the RedHatLinux7.3 custom CD @ UpdateRPMとOldRPMファイルの入替え 入手したUpdateRPMと既存のRPMを比較し新しい時は入替える 古いファイルは念のためバックアップしておく バックアップ先: $mkdir -p /mnt/temp/update/RedHat73/rh73old 面倒な作業を今回の環境に合わせて構築している場合、自動でやってくれるシェルを作りました。 updaterpm.shを使うかたはどうぞ! ・updaterpm.shの使い方 updaterpm.sh RedHatVersion $updaterpm.sh 73 XXX is New RPM. XXX is Updated. 実行中は上記のようなメッセージが出ます。 使用できる環境 RedHatLinux7.3のファイル・・・/mnt/temp/update/RedHat73/i386以下のあること UpdateRPMファイル ・・・・・・/mnt/temp/update/RedHat73/rh73updにあること 実行中に/mnt/temp/update/RedHat73/rh73oldが作成されます。 例)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/RedHat73/i386 /mnt/temp/update/RedHat73/i386/RedHat/base以下のhdlist/hdlist2がUpdateされる。 C TRANS.TBLファイルの削除 $cd /mnt/temp/update/RedHat73/i386 $find . -name TRANS.TBL -exec rm -f {} \; D その他変更したいものがある場合はここで行う 今回はUpdateRPMのみを組み込むことにします。 E pkgorderファイル作成 この後に行うCDイメージの作成時に必要です。 $pkgorder /mnt/temp/update/RedHat73/i386 i386 > /tmp/rh73upd.pkg F Anacondaインストーラー・イメージの再構築 $buildinstall --comp dist-7.3 --pkgorder /tmp/rh73upd.pkg \ --version 7.3 /mnt/temp/update/RedHat73/i386 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/RedHat73/i386/RedHat/base/hdstg1.img (7832k)... Building stage2.img Wrote /mnt/temp/update/RedHat73/i386/RedHat/base/stage2.img (60556k) Cleaning up images Writing .discinfo file timestamp not specified; using the current time G パーミッションのチェック FTPでUpdateファイルを入手した場合、パーミッションがオリジナルと変わってしまっている場合があります。 permchk.shで確認し間違っている場合は自動的に変更します。 ・permchk.shの使い方 permchk.sh RedHatVersion $permchk.sh 73 使用できる環境 RedHatLinux7.3のファイル・・・/mnt/temp/update/RedHat73/i386以下にあること 例)Ver7.1の場合 RedHatLinux7.1のファイル・・・/mnt/temp/update/RedHat71/i386以下にあること $permchk.sh 71で実行する H CD-Rに焼くために分割 $splitdistro --fileorder /tmp/rh73upd.pkg /mnt/temp/update/RedHat73 i386 今回はSRPMを含まないCDイメージ分割をしました。 標準のsplitdistroではSRPMを含む分割になるのでPatchを当ててsplitdistroを変更しました。 splitdistroのパッチを当てたい方はこちらをどうぞ! 適用方法: $cd /usr/lib/anaconda-runtime $patch -p0 < patch.splitdistro.73 それぞれ/mnt/temp/update/RedHat73以下にi386-disc1からi386-disc3のディレクトリに分割されます。 I 分割後のhdlist再構築 古いhdlist/hdlist2の削除 $rm -f /mnt/temp/update/RedHat73/i386-disc1/RedHat/base/hdlist* 再構築 $genhdlist --withnumbers --fileorder /tmp/rh73upd.pkg \ /mnt/temp/update/RedHat73/i386-disc[123] |