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

[debian-devel:12988] libc6 2.1.94-3 (Re: Re: glibc-2.1.94-2 status)



佐野@浜松です。

In <14803.15478.760194.90123Q@xxxxxxxxxxxxxxxxxxx>,
 on "Thu, 28 Sep 2000 21:41:28 +0900",
  GOTO Masanori <gotom@debian.or.jp> さん wrote:

 (登録おめでとうございます :)

> At Thu, 28 Sep 2000 16:49:54 +0900,
> Fumitoshi UKAI <ukai@debian.or.jp> wrote:
> > 今 incoming に glibc 2.1.94-2 があります。それを試してみました。
> 
> 確認お疲れ様です。
> これを参考に、私もいれてみました。

遅くなりましたが、libc6 2.1.94-3 を入れました。

ただし、potato な環境から chroot して apt-get してるので、
もしかしたら動作に違いがあるかもしれません。

> > locales 2.1.94-2 には ja_JP.eucjp がはいっています。

 2.1.94-3 にも  /usr/lib/locale/ja_JP.eucjp/ がありました。

> >  * ln -s /usr/lib/locale/ja_JP.eucjp /usr/lib/loacle/ja_JP.eucJP 
> >    をしないと GNOME, X系の app で日本語が駄目です。
> >    この symlink をしておけば LANG=ja_JP.eucJP で ok です。
> >    (ちなみに symlink がないと LANG=ja_JP.eucjp でも ダメ)
> >    なお LANG=ja_JP.ujis はありません。
> >    symlink がなくても libc の locale は LANG=ja_JP.eucJP で ok です。
> 
> これは、
>   mv /usr/lib/locale/ja_JP.eucjp /usr/lib/locale/ja_JP.eucJP 
> にしたほうが良いでしょうね…。
> また後方互換性のために ja_JP.ujis も symlink して欲しいですね。
>
> この2つは BTS しておきました。

どうもです。

最初、LANG=ja_JP.ujis の設定のままだと  perl が文句をいったり、
 apt-get update の出力が化けたり( "??????" になる) しました。

とりあえず ln -s /usr/lib/locale/ja_JP.eucjp /usr/lib/local/ja_JP.eucJP と
 ln -s /usr/lib/locale/ja_JP.eucjp /usr/lib/local/ja_JP.ujis を実行して
 symlink を作ったら LANG=ja_JP.ujis のままでも日本語のエラーメッセージが
ちゃんと表示されるようになりました (実際に表示してるのは potato の X 上の
 kterm だったりするけど)。

 potato 上で実行すると

#ls asdf
ls: asdf: そのようなファイルやディレクトリはありません
#LANG=ja ls asdf
ls: asdf: そのようなファイルやディレクトリはありません
#LANG=ja_JP ls asdf
ls: asdf: そのようなファイルやディレクトリはありません
#LANG=ja_JP.ujis ls sadf
ls: sadf: そのようなファイルやディレクトリはありません
#LANG=ja_JP.eucjp ls asdf
ls: asdf: そのようなファイルやディレクトリはありません
#LANG=ja_JP.eucJP ls adf
ls: adf: そのようなファイルやディレクトリはありません
#LANG=ja_JP.utf-8 ls adf
ls: adf: そのようなファイルやディレクトリはありません
#LANG=C ls adsf
ls: adsf: No such file or directory
#LANG=C.utf-8 ls adf
ls: adf: No such file or directory
#LANG=C.UTF-8 ls adf
ls: adf: No such file or directory

となるのが、同じ表示環境で chroot して libc6 2.1.94-3 な woody 上で
実行すると

# ls asdf
ls: asdf: そのようなファイルやディレクトリはありません
# LANG=ja ls asdf
ls: asdf: ??????????????????????
# LANG=ja_JP ls asdf
ls: asdf: ??????????????????????
# LANG=ja_JP.ujis ls asdf
ls: asdf: そのようなファイルやディレクトリはありません
# LANG=ja_JP.eucjp ls asdf
ls: asdf: そのようなファイルやディレクトリはありません
# LANG=ja_JP.eucJP ls asdf
ls: asdf: そのようなファイルやディレクトリはありません
# LANG=ja_JP.utf-8 ls asadf
ls: asadf: ??????????????????????

となります。

そいえば glibc2.2 になれば libutf8 は不要になるのかなぁとか
思ってたんですが、2.1.94-3 には UTF-8 のついた locale が
用意されてないみたいですね。

 vt-is-unicode(1) とか unicode_start(1) とか unicode_stop(1) とか
コンソール関係のコマンドはあるみたいですが。

 libutf8 って glibc2.2 になってもまだ必要ですか ?

> >   * man で日本語 manual を見ようとすると
> > 	ls(1) ?????????????????????.....
> > 	と出力されます。(を再フォーマットしています…のメッセージがでない)
> > 	manual自体は日本語で見ることができます。
> > 	なお、これは export OUTPUT_CHARSET=EUC-JP しておくと直ります。
> 
> この他にも netbase などが同様に表示できないようです。
> これは、プログラム中で setlocale() を行っていないことが
> 原因かもしれませんが、まだはっきりしていません。
> 
> # 以前の glibc-2.1 では、gettext が環境変数を直接見て動作していた
> # ために問題なかったのですが、2.2 からちゃんと setlocale して
> # ないとダメなのかもしれません。

 libc6 の changelog.gz を見ると

2000-07-25  Bruno Haible  <haible@xxxxxxxxxxxxxx>

        * intl/tst-translit.c (main): Unset OUTPUT_CHARSET.

2000-05-06  Bruno Haible  <haible@xxxxxxxxxxxxxx>

        * intl/tst-gettext.c (main): Disable possibly existing LC_CTYPE and
        OUTPUT_CHARSET environment variables.

というのがありますね。このへんが関係しているのかな。

> この他に問題として、
> 
>  * tcsh (tcsh-i18n, tcsh-kanji) で、tcsh のメッセージカタログ
>    の日本語が全て ??? と表示されてしまう。
> 
> があります。こちらは ltrace すると setlocale していますし、
> どうして表示できないのかが謎です (やはり setlocale 絡みかも?)。
> 
> # tcsh で日本語表示が使えないと非常にせつない…。

 chroot した環境で LANG=ja_JP.ujis ですが

ii  tcsh-i18n      6.09.00-8      TENEX C Shell message catalogs
ii  tcsh-kanji     6.09.00-8      TENEX C Shell, an enhanced version of Berkel

# echo $LANG
ja_JP.ujis
# echo $OUTPUT_CHARSET
OUTPUT_CHARSET: 変数を定義していません.
# dsfa
dsfa: コマンドが見つかりません.
# setenv LANG ja_JP.eucjp
# adaf
adaf: コマンドが見つかりません.
# setenv LANG ja_JP.eucJP
# adaf
adaf: コマンドが見つかりません.
# echo $LANG
ja_JP.eucJP

と日本語が表示されているようです。もしかして chroot してるから ?

 (tcsh の catalog ファイルって名前に .mo が付いてないんですね)

あと、余談ですが libc6 2.1.94-3 に upgrade してから chroot した
環境では name resolve が無効になりました。proxy 経由の http では
 proxy に IP address でアクセスしてそちらで名前解決してもらえる
のか問題ありませんが、 apt.conf で Proxy DIRECT を指定してある
職場のサーバーには名前指定では接続できず、IP アドレスで指定し
直しました。

おそらく woody リリース時の potato -> woody 移行でも、またこのへん
 sources.list の記載方法に関する注意が必要になりそうです。

--
     # (わたしのおうちは浜松市、「夜のお菓子」で有名さ。)
    <kgh12351@xxxxxxxxxxx> : Taketoshi Sano (佐野 武俊)