chrootを使ってサポート外のソフトウエアを動かす

昔のRedHat6.2とか7.2にしか対応していなかった商用ソフトエア。昔は使えてたんだけど今のメインマシンのGentooではsegmentation faultで動かない。販売終了しているのでバージョンアップも望めない。このまま捨てるのももったいないのでRedHat7.2相当の環境を用意してそこにchrootして動かしてみることにした。

RedHat7.2の環境は、UMLroot filesystemからダウンロードできるroot_fs.rh-7.2-server.pristine.20020312.bz2を使用。

bunzip2で展開して適当なところにmount -o loopして/home/chroot/rh-7.2にcp -pRする。

これにはrpmコマンドが含まれていないので、RedHat7.2の更新パッケージサイトにあったrpm-4.0.4-7x.i386.rpmをダウンロードしてrpm2cpioでcpioに変換したものをrh-7.2/tmp/あたりにコピーしておいてchroot /home/chroot/rh-7.2 /bin/bashした後、

  # cpio -ivdm -I /tmp/rpm-4.0.4-7x.i386.cpio
  # rpm --rebuilddb

これでrpmコマンドが使えるようになったので、商用ソフトウエアのrpmパッケージをchroot下にコピーしてrpm -ivhでインストール。

起動は chroot /home/chroot/rh-7,2 /usr/local/FOO/bin/BARserver でOK。