[Momonga-devel.ja:00306] Re: /bin/grep と /usr/lib/libpcre.so.0


小松です。

From: Yonekawa Susumu <yone@xxxxxxxxxxxxx>
Subject: [Momonga-devel.ja:00304] /bin/grep と /usr/lib/libpcre.so.0
Date: Tue, Aug 06, 2002 at 10:36:35PM JST

>   私は / と /usr のパーティションを分けています。
>   さらに、GNU grep は 2.5 から --pcre-regexp オプションが新設され、
> pcre をリンクするようになりました。
>   grep は /bin/grep に、pcre は /usr/lib/libpcre.so.0 にあります。
> 
>   ということで、私の起動画面は、エラー表示がいっぱい出ます。
> ---
> grep: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory
> ---
>   今のところ支障は無い(ほんとうか!?)ようなので、無視しています :-)

# いや、ホントは支障があるはず。。。(^_^;

>   pcre パッケージの /usr/lib/libpcre.so.0* を /lib 下へ引越しするわけ
> にはいかないでしょうか?

RedHat (RawHide) の libpcre.so* も /lib の下にお引越しみたいですねぇ。

ということで、ちょっと試してみました。
%install でムリヤリ libpcre.so* を /lib に mv したのですが、
その状態で grep を rebuild したら 
grep が libpcre を static link するようになってしまいました。。。
どうやら、

    % pcre-config --libs
    -L/usr/lib -lpcre

となっているため、pcre-config の出力から LDFLAGS を決めているモノ
(grep がそう) は /usr/lib に libpcre* をさがしに行き、
そこには libpcre.a しか見付からないため
dynamic link ができない、ということのようです。

pcre-config をいじって -L/lib -lpcre と吐かせるようにしてしまうと
今度は static link したい時に切ないことになるし。。。
ということで、/usr/lib/libpcre.so -> /lib/libpcre.so という
symlink を張ると、grep は問題なく libpcre.so を link するようになりました。

以上の変更をした pcre-3.9-2m1KOM.nosrc.rpm を

    http://kamuy.c.u-tokyo.ac.jp/~koma2/comp/momonga/tmp/pcre-3.9-2m1KOM.nosrc.rpm

に置いておきましたので、ほかに問題が起きないか
テストしていただけませんか? > 特にオモコニストの人たち
問題なければ commit します。

# それとも、commit してからテスト、の方がいいのかな?

-- 
---------------------------------------
東京大学大学院総合文化研究科
広域科学専攻相関基礎科学系 
  佐々研究室  博士3年
    小松  晋一朗            
mailto:koma2@xxxxxxxxxxxxxxxxxxxx
http://kamuy.c.u-tokyo.ac.jp/~koma2/
---------------------------------------