Slackware7.0では基本ライブラリがlibc5からglibc2に移行してしまったため、PJE-0.1.5のバイナリを入れてもほとんど正常な動作が望めません。そこで現在できる簡単な解決策は他のglibc2化されているJRPMやVineLinuxに含まれている日本語アプリケーションを入れることです。私はその中でもjrpm60の日本語パッケージをインストールすることにしました。
jrpm60が対象にしているRedhatLinux6.0はカーネルに2.2.xを、基本ライブラリに2.1.xを採用している点がSlackware7.0と共通しているので、パッケージのコンパイルがし易いと思ったからです。ただし、VineLinuxのソースファイルでも結構コンパイルできますし、Laser5Linuxのソースでも構わないと思います。
Slackwareには以前からrpm2tgzなどのコマンドがありましたが、Slackware7.0にはrpmコマンドが用意されたので、srpmsなパッケージが簡単にコンパイル/インストールできるようになっています。バイナリのrpmファイルでも使えるものも結構ありそうなのですが、ディレクトリ構造やrcファイルの登録方法がSlackwareに合わないパッケージもあるため、とりあえずソースファイルであるSRPMSからインストールすることにします。
SRPMSからのインストール
今までrpmコマンドを使ったことがないので合っているかどうかわかりませんが、SRPMSからのSlackware用パッケージの作り方の基本のつもりです。Linux-HOWTOやJFのRPM-HOWTOが参考になると思います。私はman
rpmとrpm --helpしか読まなかったので手間取りましたので、作業を始める前に必ず読んでおいた方がいいと思います。
ところでこのインストールにはrpmコマンドがインストールされていないと話になりません。インストールさせなかった人はインストールしておいて下さい。
さて、インストールしたいソースファイルが/archives/packages-JRPM60.src.rpmだったとします。その場合以下のようにコマンドを実行します。
# rpm --rebuild /archives/packages-JRPM60.src.rpm
終了すると、/usr/src/rpm/RPMSのi386ディレクトリにバイナリのrpmファイルが生成されています。場合によってはi686だったりnoarchだったりします。このrpmファイルを以下のようにしてインストールすることができます。
#
rpm --install --nodeps packages-JRPM60.i386.rpm
または
# rpm --install --nodeps --force packages-JRPM60.i386.rpm
でもSlackwareだったらrpm2tgzコマンドでtgzファイルにして、
# installpkg packages-JRPM60.i386.tgz
とするとパッケージの管理が統一されて楽になるかも知れません。/var/log/packages/rpmにそんなことがかいてありました。この文章、インストール時には1秒もしないうちに消えてしまっていて、皆さん読んでいるのでしょうか?
SRPMSからのインストール2
~カスタマイズ編~
いくつかのパッケージはディレクトリ構成やコンパイルオプションがSlackwareの同様のパッケージと異なることがあるため(gtk+1.2.xなどはバージョンも違う)、specファイルの修正やパッチの追加/変更が必要です。Slackware7.0のsourceディレクトリ内のSlackBuildファイルやpackages.buildファイルを参考に変更しましょう。上の方法でパッケージをコンパイルするとspecファイルソースファイルも消えてしまうのでそれらを残すには、
# rpm --recompile packages-JRPM60.src.rpm
とします。すると今度はバイナリのrpmファイルは作らずに、ソースファイルを/usr/src/rpm/SOURCESに、specファイルを/usr/src/rpm/SPECSに、それらを展開してコンパイルしたままのファイル群が/usr/src/rpm/BUILDにできます。
そうしたらそれらに手を加えて、Slackwareで動かせるようにしましょう。
その1 インストールディレクトリを変更する
~configure編~
ソースファイルに附属のconfigureを使ってインストールやコンパイルの設定を行なっているパッケージはspecファイル内の編集だけです。
つづく...
その2 インストールディレクトリを変更する
~Makefile/Imakefile編~
ソースファイルに附属のMakefileやImakefileを使ってインストールやコンパイルの設定を行なっているパッケージはspecファイルの編集の他にPatchファイルを作成する必要があります。
つづく...
Slackware用にカスタマイズできたらspecファイルを編集して、Release名をxJRPMS7にしたり、署名を追加したり、ChengeLogをしておくと良いでしょう。
さて、変更したパッケージをrpm/srpmファイルにします。
# rpm -ba /usr/src/rpm/SPECS/packages-JRPMS7.spec
のように実行すると/usr/src/rpm/RPMS以下のディレクトリにバイナリの.ix86.rpmが、/usr/src/rpm/SRPMSに.src.rpmが作成されるので保存しておきましょう。後で変更したり不具合があった時に対処しやすくなります。 |