[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:18528] Re: gnome-same-gnome とかの日本語表示



  永井@シリウスです。

  とりあえずちょっとインチキくさいんですが、パッケージファイル
のパーミッションをいじらずに日本語にする方法がわかりました。で
すが謎な部分が多いので、私の行ったことの経緯を含めて書きます。

>>>>>> Yuusuke Tahara <m5021212@xxxxxxxxxxxx> wrote:

m5021212> と libJIS.so などのローディングに失敗しているのが気になります.
m5021212> ここまで追いましたが,結局原因はわからずじまいでした.

  私もたはらさんのおっしゃるように、libJIS.soが読めないのが直
接原因だと思い、strace で追ってみました。

  みてみると、グループgamesでsetgidされているときは、libJIS.so 
を探すのに、

/lib
/$ORIGIN
/usr/lib

のそれぞれの直下、i686, mmx, i686/mmx しか探してません。しかし
問題のlibJIS.soは/usr/lib/gconv/libJIS.so です。それならば、と
にかくこのライブラリが暗黙の内に探し出せるような状況をつくって
あげればよいのだと考え、/etc/ld.so.conf に、

/usr/lib/gconv

を追加して、ldconfigしなおしました。すると、日本語のメニューが
でるようになりました。

  gnomeあるいはlibc6ロケール部分のレベルでのsharedライブラリの
リンクの仕組みがわかるとこのことの意味はわかるのかもしれません
が、なにぶんそちら方面はとんとだめなので、今のところはこのよう
な現象論的なことしかわかりません。

  実は関係あるのかないのかわからないんですが、気になる記述を
ld.so の man の中に見つけました。

---ここから
   プログラムで必要とされる共有ライブラリは以下の順序で検索さ
   れる。

   o      環 境 変 数  LD_LIBRARY_PATH  (a.out プログラムでは
          LD_AOUT_LIBRARY_PATH) を用いる。ただし実行ファイ ル
          が  setuid/setgid  バイナリの場合は、これは無視され
          る。

   o      キャッシュファイル /etc/ld.so.cache を探 す。 こ の
          ファイルは、 (ld.so.conf で追加指定されたものも含め
          た) ライブラリ検索パスから見つかったライブラリ ファ
          イルの情報を集めたものである。

   o      デフォルトパスである /usr/lib、次いで /lib。
---ここまで

  私の環境では LD_LIBRARY_PATH は設定されてないんですが、
「setuid/setgid」って記述が引っ掛かります。直接的な根拠ではな
いんですが、ld.so の動きに少なからず影響を与えているように見え
ます。

  でも本来、/usr/lib/gconv って /etc/ld.so.conf に記述されてい
る必要ってないんですよね?

---
Toyohiko Nagai <nagai@xxxxxxxxxxxx>
http://www.sirius.gr.jp/~nagai/
PGP Key fingerprint : F2 40 A5 42 F6 49 65 FF  09 B0 B3 77 5F 2A F6 F7