[前][次][番号順一覧][スレッド一覧]

mysql:291

From: Satoshi Koiwa <Satoshi Koiwa <koiwa@xxxxxxxxxx>>
Date: Wed, 21 Oct 98 22:39:14 +0900
Subject: [mysql 291] Re: DynaLoader.pmに怒られています


村上さん、早速にアドバイスありがとうございます。

><考えられること1>
>新しくインストールしたものが同じ 3.21 ならいいはずです。
>3.22 から mysql のソースに perl が含まれていないので、
>もし 3.22 で新規にサーバーを作ったのでしたら動かないと思います。

一週間くらい前に動いていた状態と全く同じディレクトリの中で./configureをする
際の--with-charset=のところを変えた「だけ」の「つもり」なんです。3.22には手
を出しておりません。

><考えられること3>
>perl が変な残り方、あるいは変なインストールと
>なっているのではないでしょうか?
>perl のパスから外れているだけかもしれません。
>perl への登録がおかしくなっているだけかもしれません。

3の方を先に。
MySQLのインストールを繰り返しているだけで、Perl本体はいじっていないんですが
、ロードされるモジュールの引っ張り先をどこで定義しているのかってことが狂っ
ているってことだろうとはDynaLoader.pmを見てなんとなくわかったような気になっ
ているんですが、具体的にどこを直せばよいのかがさっぱり……。
MySQLとかDBDとかDBIとかのファイル名が見える/usr/lib/perl5/site_perlの下の方
をゴッソリ削除してから再度MySQLのインストールをすると改めて
/usr/lib/perl5/site_perlの下に諸々のモジュールができるんですが、それでもや
っぱりダメなんです。

><考えられること2>
>perl をコンパイルするときを注意深く観察してほしいのですが、
>/usr/..../gcc-lib/.... -lgcc  
>(あるいは /usr/..../gcc-lib/.../libgcc.a)
>などというライブラリーの指定は含まれているでしょうか?
>もちろん、mysql をコンパイルしたときに付加されたライブラリー
>(-lm とか -lz とか、システムによって違います)
>も同時に付加されていなくては動かないと思います。
>
>確認方法は、
>
>nm --dynamic /usr/...../mysql.so
>として、divd3 とかが U であれば、libgcc が付加されていません。

divd3という文字列は出てこない……です。うーむ。

>(gcc-2.7.2.1 では -lgcc でもリンクしてくれないので、
> gcc-2.7.2.3 にしなくてはなりません。)

# gcc -v
Reading specs from 
/usr/lib/gcc-lib/i586-unknown-linux-gnulibc1/2.7.2.3/specs
gcc version 2.7.2.3

ということなんで、これそのものはそんなに違ってはいないだろうと思います。

>ldd /usr/...../mysql.so
>でその他の -lm などのライブラリーが付加されて
>コンパイルされているか確認できます

lddだと

# ldd Mysql.so
ldd: can't execute Mysql.so (No such file or directory)

といわれてしまいます。

今さっき思い出したんですが、一週間ほど前までちゃんと動いていた
mysql-3.21.33bは、もともとmysql-3.21.33だったものを上書きインストールのよう
なことをしたものだったんです。とすると、そのあたりなのか。しかし現状をどう
すればいいんだぁっ。
とりあえず、/usr/local/mysql/perl/Mysql-modules/Mysqlの中にあるMysql.cとか
Makfile.PLとかを見てみることにします。

[前][次][番号順一覧][スレッド一覧]

->     291 1998-10-21 22:39 [Satoshi Koiwa <koiwa] Re: DynaLoader.pmに怒られています       
       294 1998-10-22 00:57 ┗[<takeshi@xxxxxxxxxx>]