[debian-users 00096] Re: stretchで日本語入力できない

Kenji Matsui kmatsui @ earth.kiramori.net
2017年 7月 20日 (木) 15:03:24 JST


松井です。
野方さん、西山さん
レスありがとうございます。

On 2017年07月19日 23:46, Jun NOGATA wrote:
> 通常のインストーラを使ってインストールした場合には、
> 文字化けが起こったり、localesやtask-japaneseなどの
> パッケージがないことは考えづらいのですが、
> もしかしてLiveを使ってインストールされましたか?

stretchのライブ版のサイズの大きさに少し驚きましたため、今回は
debian-9.0.0-i386-xfce-CD-1.iso(678428672 バイト)
これを使ってインストールを行いました。
(32bit版ということは問題ないですよね?)
ちなみに、jessieでは私はほとんどライブ版ばかりでインストールしていましたが文字化けが起こったことはなく、
現在メールを書いているjessieにおいても

$ dpkg -l task-japanese
dpkg-query: task-japanese に一致するパッケージが見つかりません

こういう状態です。
locales については、最初のメールに書いたスクリプトでインストール操作を行っていますが
初めから入っていた可能性もあると思います。

> ほかに考えられる原因は、通常のインストーラだけどネットワークに
> 繋がってないので必要なパッケージがダウンロードできていないなども考えられます。

私は
インストーラーにセキュリティホールが見つかったことがあるかといったことに関する知識がありませんので、
いつもネットに繋がずにインストールを行っております。

> インストールに使用したISOイメージや環境を教えていただけると
> 問題の切り分けがしやすいと思います。
> もしかするとインストールをし直したほうが速いかもしれません。
> (通常はlocaleを自分で作る必要はありませんし、日本語の入力も普通にできるので…)

数年前に debian wheezy xfce を初めて使い始めた時は日本語化に本当に苦労しました。
https://wiki.debian.org/JapaneseEnvironment
https://wiki.debian.org/ja/L10n/Japanese
このあたりを読んでもうまくいきませんでしたし、
ネット上に散乱している情報も古かったり一部分的なものであったり・・・
日本語化の設定が面倒であることも debian が一般の人達から敬遠される理由かなと思っていましたので
自分が普段使っている一発日本語化スクリプトをwikiにアップした方がいいのかなと思っていましたら
jessieがリリースされて文字化けも解消されたようでしたので、
まあいいかなと結局そのままになってしまいました。
皆さんは、たとえば
/etc/inputrc
こういった設定ファイルを直接いじったりできるのでしょうけど
私はいつも一発日本語化スクリプトに頼っていました。

On 2017年07月20日 00:31, Kazuhiro NISHIYAMA wrote:
> root で入ると正常に見えるということは既存のユーザーの $HOME 以下に
> 何か英語環境にする設定が入ってしまっている気がするので、新規ユーザーを
> 作って試してみるとどうなるのかが気になりました。

新規ユーザーを作って試してみました。
新規ユーザーで初めてログインすると画面上部の xfce4-panel に iBus  
の設定アイコンが表示されていて日本語・英語がちゃんと切り替えながら入力できます。
しかし、一旦ログオフしてもう一度ログインすると
xfce4-panel の iBus の設定アイコンが消えており、日本語に切り替えることができません。
iBus の設定において
「システムトレイにアイコンを表示する」
にチェックが入っているにも関わらずです。
im-config の
「ユーザー設定を選択する。ユーザー設定はシステム設定より優先される。」
において default や ibus を選んで再ログインしても同じことでした。

$ locale
LANG=ja_JP.UTF-8
LANGUAGE=ja_JP:ja
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=

こういう状態にちゃんとなっているにも関わらずです。
しかし、再ログインでなく再起動すれば日本語入力切り替えはうまくいくようです。
mate-desktop-environment もインストールしてmate環境にログインしてみましたが、
再ログインすると日本語入力切り替えできなくなるのは同じでした。

ちなみに、インストール直後の操作で特別妙なことは何もやってないと思います。
最初のメールに書きました
> # apt-get update
> の後に
> apt-get install -y ibus-kkc locales
> echo "ja_JP.UTF-8 UTF-8" >> /etc/locale.gen
> echo "ja_JP.SHIFT_JIS SHIFT_JIS" >> /etc/locale.gen
> locale-gen
> update-locale LANG=ja_JP.UTF-8 LANGUAGE=ja_JP:ja
> locale
> をスクリプトとして実行
の前に
touch /var/mail/root
dpkg-reconfigure apt-listchanges
echo "deb http://ftp.jp.debian.org/debian/ stretch main" >  
/etc/apt/sources.list
echo "deb http://security.debian.org/ stretch/updates main" >>  
/etc/apt/sources.list
apt-get install -y ufw sudo
ufw enable
をルート権限でやはりスクリプトの一部として実行したくらいです。

何だか気持ち悪いので、
数日後にも stretch 9.1 がリリースされるようですから
Mate-desktop で再インストールしてみようかと思います。

>> $ sudo bash /etc/default/locale
>
> これは root 権限の bash で /etc/default/locale を実行して
> 終了しているだけで、他のプロセス (親プロセスとか) には
> 何も影響しないので、意味がないのではないでしょうか。
>
> 環境変数というのは親プロセスから子プロセスに継承されるだけで
> 子プロセスでの環境変数の変更は親プロセスには影響しないので、
> 後で locale コマンドを実行しても何も変わらないのは、
> 何もおかしいところはないと思います。
>
>> (ちなみに、一般ユーザーではbashだとうまくいきますがsourceだと
>> $ sudo source /etc/default/locale
>> sudo: source: コマンドが見つかりません
>> となってしまいます。何なんでしょう、これ?)
>
> source という外部コマンドは存在しないからではないでしょうか。
>
> 現在のシェルに変数設定を反映したいのなら、普通にドットコマンドなどを
>
> $ . /etc/default/locale
>
>>
> $ source /etc/default/locale
>
> のように使えば良いと思います。

すみません、ちょっとこっちの方は間に合いませんでしたので
後日自分で調べてみて
分からないとこがあればまた質問させていただきたいです。

---
Kenji Matsui



debian-users メーリングリストの案内