松井です。 野方さん、西山さん レスありがとうございます。
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