笠原です。 * From: Toru Hoshina <toru / gte.net> * Date: Sat, 14 Nov 1998 05:49:06 +0900 > rpmを作るには必ずspecファイルというものが必要です。レシピです。 > 通常は、ソースを展開し、パッチなどを(あれば)あて、普通に人手ですると > 同じように、 > ./configure --prefix=/usr > make > などとしてconfigure、makeします。そしてインストールするわけですが、 > この際には直接、目的の位置にインストールするのではなく/var/tmpなどの > 一時的な位置にインストールします。 make install のときに make install DESTDIR=/var/tmp とすると、その下 (/var/tmp/usr/local/bin/...)、にインストールしてくれ る、というのではどうでしょう。GNU automake でも 1.3 からこの手法が導 入されましたが、採用された理由はやはり「パッケージマネージャで便利だ から」だったと思います。 > ただ1点だけ、libruby.so が今のinstruby.rbだと /usr/local/lib/ruby に > 置かれます。1.1c6では/usr/local/lib に置かれていました。 > 通常、/usr/local/lib/rubyなどの固有なディレクトリは/etc/ld.so.conf > には書かれていないので、ldconfigは見にきませんよね。 すみません。これは私が新たにバグを作ってしまいました。 両方とも libdir にしてしまったのが、いけませんでした。 たとえば libdir と pkglibdir に分ける、というのではどうでしょう。 libdir = @libdir@ # => "$(prefix)/lib" => "/usr/local/lib" という具合に展開される pkglibdir = "@libdir@/ruby" # => "$(prefix)/lib/ruby" => "/usr/local/lib/ruby" という具合 # に展開される この @pkglibdir@ というネーミングも、automake からの拝借です。 これで良ければ、パッチを作ります。 個人的には automake を導入して Makefile.in は自動生成した方が楽チンだ と思いますが、*.rb を使ったインストール (instruby.rb や extmk.rb) は 諦めなくてはなりません。今の ruby だと instruby.rb はともかく、extmk.rb の方を諦めるのは無理そうです。 それから、automake を使うと `make uninstall' や `make dist' (ソースコー ドの配布パッケージの *.tar.gz を生成する) といったターゲットも自動生成 してくれるという利点があります。 さらに大いなる蛇足ですが、ruby の Makefile.in にある realclean という ターゲットは現在の GNU Coding Standard からは削除されていて、代わりに mostlyclean と maintainer-clean が加わってます。(使ったことないけど ^^;) ______________________________________________________________________ 笠原 基之(かさはら もとゆき)