ようやくビルドに成功したので書いておく。
(この話のつづきなの...)
xrea.comサーバーで "perl -V" した結果をもとに、
偽装xrea環境を構築しようといろいろやっている。
ローカルテストで問題ないものがサーバーでは動かない。
レンタルサーバーだから error.log は見れない。
perl の吐き出すビミョーなエラーメッセージだけでは、
何がおこっているか分からないことが多い。
ローカルのテスト結果とサーバー動作に差が出るのは、
動作環境がだいぶ違うからなんだと思う。
もし、まったく同じ同士だったなら違いなど出るはずがない。
(アクセス権とか細かいことは考えないようにしよう)
いつもながら前置きが長いので
シンプルに打ち込んだコマンドを書き出してみる。
あ、いちおう環境はこんなん...
$ uname -s -r -i -o
Linux 2.6.17-4.2142_FC4smp i386 GNU/Linux
$ gcc_3.4 -v
/usr/lib/gcc-3.4.6/gcc/i686-pc-linux-gnu/3.4.6/specs から spec を読み込み中
(省略)
gcc バージョン 3.4.6
$ whereis libc-2.3.5.so
libc-2.3.5: /lib/libc-2.3.5.so
すべて i686 向けにリビルドしてある。
glibc も FedoraCore4 の SRPM から作りなおした。
その状態までもってくのに1週間かかったわけだが..orz
...ということで以下が perl 5.8.8 のビルド。
wget http://www.cpan.org/src/5.0/perl-5.8.8.tar.bz2
tar xjf perl-5.8.8.tar.gz
cd perl-5.8.8
./Configure -des \
-Dosvers=2.6.17.11-smp \
-Dcc='gcc' \
-Doptimize='-O2' \
-Darchname=i686-linux \
-Dinstallprefix='/usr' \
-Dprefix='/usr' \
-Dsiteprefix='/usr' \
-Dhint=recommended \
-Duseposix=true \
-Dd_sigaction \
-Uusethreads \
-Uuse5005threads \
-Uuseithreads \
-Uusemultiplicity \
-Duseperlio \
-Ud_sfio \
-Duselargefiles \
-Uusesocks \
-Uuse64bitint \
-Uuse64bitall \
-Uuselongdouble \
-Dusemymalloc=n \
-Ubincompat5005
make CC=gcc_3.4 LD=gcc_3.4
ビルド時間はかなり長いので、
ビルド環境で依存エラーがでない自信があれば
コマンドタイプして放置するのがおすすめ。
ビルドが終わった後は、
こんなコマンドを打ってみると幸せな気分になれるかも...
rm -fR ~/perl_build
make install DESTDIR=~/perl_build
cd ~/perl_build
ls -l
ldd ./perl5.8.8
~/perl_build/usr/bin/perl -v
遊び終わったらこんな感じにインストールする。
su -
make install
あくまで FedoraCore4 の場合。
この perl は thread-multi じゃないので、
使ってる linux によっては環境を破壊するかも知れない。
具体的には GUI が起動しなくなるかも...(恐っ
FC4は純正環境が perl 5.8.6 だったりする。
オイラはあえて元の perl を残しているから
スレッド非対応&マルチじゃないperl でも問題ない。
ほんとうは、server専用機を設けたほうがいいんだけどねぇ...

コメントする