[Momonga-devel.ja:00424] perl 5.8に先立って


さくです。

perl 5.8の取り込み作業を開始しようと目論んでいます。
影響デカいんでブランチ切って作業しますが、その前に:

A.
現在の /usr/lib/perl5 以下には
5.6.1/
site_perl/5.6.1
(あとman3)
があります。site_perl はruby の site_ruby でやっているように /usr/local
に追いやり、パッケージは site_perl には入れずに /usr/lib/perl5/5.6.1
(そして5.8.0)に入れるのがよいのではないかと思うのですが、いかがでしょうか?

現在の@INCは、
/usr/lib/perl5/5.6.1/i586-linux
/usr/lib/perl5/5.6.1
/usr/lib/perl5/site_perl/5.6.1/i586-linux
/usr/lib/perl5/site_perl/5.6.1
/usr/lib/perl5/site_perl
.
ですが、これを(Configureを使って?)
/usr/local/perl5/site_perl/5.6.1/i586-linux
/usr/local/perl5/site_perl/5.6.1
/usr/local/perl5/site_perl
/usr/lib/perl5/5.6.1/i586-linux
/usr/lib/perl5/5.6.1
/usr/lib/perl5 (←これもいるだろう)
.
にするわけです。ここで、/usr/local以下のディレクトリは、検索はしますが、
パッケージとしては、*ニギりません*。なければ無視されるだけですし、ユーザー
が自分で掘っていれば検索されます。

(欲を言えば、FHS的にはアーキテクチャ非依存のモジュールは
 /usr/shareに行くべきだけど)

B.
あと、その /usr/lib/perl5/5.6.1 なんですが、perl(rubyもだな)モジュールは、
必要がない限り、パッケージングの際に '5.6.1' のようなバージョン番号を含ま
ないディレクトリに配置するようにしたほうが、インタプリタ本体のバージョンアッ
プに伴ってリビルドする必要が省けることが期待できると思うのですが、いかがで
しょう? 実際には、互換性の問題でリビルドしなければならない場合もあるでしょ
うが、今の配置方法だとリビルド不要な場合でも、インタプリタのバージョンが変
わった(=配置するパスが変わった)だけで、リビルドしなければなりません。

C. 
/usr/lib/perl5/manの中身は、/usr/share/manの下に収容してしまってよいと思い
ますが、作業の優先順位は低いかな。(libの下のmanはFHS違反のよーな?)

手順としては、

1. perl 5.6.1のまま、perlのデフォルト検索パス(@INC)を変更。
2. 各モジュールの配置場所を /usr/lib/perl5 にする。
3. perl 5.8.0にアップグレード。

くらいのステップで出来るような気がしていますが……perlに依存してるのは
perl-Xxxモジュール群だけじゃない(rpm-buildとか)ので、いくらでもトラブル
に遭遇しそうな予感。

-- 
OZAWA -Crouton- Sakuro                         VERBA VOLANT, SCRIPTA MANENT

Mail: mailto:crouton@xxxxxxxxxxxxxxxx       GnuPG: 1C1A 4C26 32E2 A911 7B62
 Web: http://www.weatherlight.org/~crouton/        E194 37C0 8725 F1D8 F388