[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 (佐野 武俊)