こんばんは、松井です。 xfceデスクトップを選択し、stretchを新規インストールしてみたのですが 問題に遭遇しております。
まず、jessieからインストール直後の文字化けは解消されたのかなと思っていたのですけど、 ログインすると日本語が文字化けしていました。 (これはデスクトップ環境によるということなのかもしれないですけども。)
# 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 をスクリプトとして実行しました。これだけでは直らなかったので # apt-get install -y task-japanese までやってやっと文字化けが直りました。 (task-japaneseを使わない文字化けの直し方もあるのでしょうか?)
次に日本語入力をしようとしましたが 「iBusの設定」の「一般」タブで 次の入力メソッド: <Super>space となっているのですが Windowsキー+spaceキーを押しても 半角/全角キーを押しても 英語しか打てません。
ルートユーザーとしてデスクップにログインしますと 「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=
ちゃんとこうなっていて、日本語入力できました。
しかし、一般ユーザーだと $ sudo update-locale LANG=ja_JP.UTF-8 LANGUAGE=ja_JP:ja $ sudo bash /etc/default/locale (ちなみに、一般ユーザーではbashだとうまくいきますがsourceだと $ sudo source /etc/default/locale sudo: source: コマンドが見つかりません となってしまいます。何なんでしょう、これ?) をやった後でも
$ locale LANG=en_US.utf8 LANGUAGE=ja_JP:ja LC_CTYPE="en_US.utf8" LC_NUMERIC="en_US.utf8" LC_TIME="en_US.utf8" LC_COLLATE="en_US.utf8" LC_MONETARY="en_US.utf8" LC_MESSAGES="en_US.utf8" LC_PAPER="en_US.utf8" LC_NAME="en_US.utf8" LC_ADDRESS="en_US.utf8" LC_TELEPHONE="en_US.utf8" LC_MEASUREMENT="en_US.utf8" LC_IDENTIFICATION="en_US.utf8" LC_ALL=
こういうおかしな状態です。 ログイン時に Defaut Xsession Xfce セッション のどちらを選んでも同じことでした。
現在jessieで使っているmateデスクトップでは https://www.server-world.info/query?os=Debian_9&p=japanese で説明されている IME アイコンのようなものが同じ場所に表示されていますので これを表示させることができればいいのかもしれませんけど、 画面上部パネルの「新しいアイテムの追加」の中を探してもそういう項目はないようです。
なるべくなら他のデスクトップ環境をインストールせずに解決する方法を知りたいのですけど、 どのようにすれば解決できますでしょうか? よろしくお願いします。
--- Kenji Matsui
野方です。
通常のインストーラを使ってインストールした場合には、 文字化けが起こったり、localesやtask-japaneseなどの パッケージがないことは考えづらいのですが、 もしかしてLiveを使ってインストールされましたか?
stretchのxfce Liveインストーラを使ってインストールすると 大量のtask-(言語)のメタパッケージがインストールされると同時に uim, ibus, scim, fcitxのインプットメソッドもインストールされるので 初期状態では日本語入力できないことは確認しました。 (im-configを使ってuimに設定すると入力できます)
ほかに考えられる原因は、通常のインストーラだけどネットワークに 繋がってないので必要なパッケージがダウンロードできていないなども考えられます。
インストールに使用したISOイメージや環境を教えていただけると 問題の切り分けがしやすいと思います。 もしかするとインストールをし直したほうが速いかもしれません。 (通常はlocaleを自分で作る必要はありませんし、日本語の入力も普通にできるので…)
2017年7月19日 18:17 Kenji Matsui kmatsui@earth.kiramori.net:
こんばんは、松井です。 xfceデスクトップを選択し、stretchを新規インストールしてみたのですが 問題に遭遇しております。
まず、jessieからインストール直後の文字化けは解消されたのかなと思っていたのですけど、 ログインすると日本語が文字化けしていました。 (これはデスクトップ環境によるということなのかもしれないですけども。)
# 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 をスクリプトとして実行しました。これだけでは直らなかったので # apt-get install -y task-japanese までやってやっと文字化けが直りました。 (task-japaneseを使わない文字化けの直し方もあるのでしょうか?)
次に日本語入力をしようとしましたが 「iBusの設定」の「一般」タブで 次の入力メソッド: <Super>space となっているのですが Windowsキー+spaceキーを押しても 半角/全角キーを押しても 英語しか打てません。
ルートユーザーとしてデスクップにログインしますと 「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=
ちゃんとこうなっていて、日本語入力できました。
しかし、一般ユーザーだと $ sudo update-locale LANG=ja_JP.UTF-8 LANGUAGE=ja_JP:ja $ sudo bash /etc/default/locale (ちなみに、一般ユーザーではbashだとうまくいきますがsourceだと $ sudo source /etc/default/locale sudo: source: コマンドが見つかりません となってしまいます。何なんでしょう、これ?) をやった後でも
$ locale LANG=en_US.utf8 LANGUAGE=ja_JP:ja LC_CTYPE="en_US.utf8" LC_NUMERIC="en_US.utf8" LC_TIME="en_US.utf8" LC_COLLATE="en_US.utf8" LC_MONETARY="en_US.utf8" LC_MESSAGES="en_US.utf8" LC_PAPER="en_US.utf8" LC_NAME="en_US.utf8" LC_ADDRESS="en_US.utf8" LC_TELEPHONE="en_US.utf8" LC_MEASUREMENT="en_US.utf8" LC_IDENTIFICATION="en_US.utf8" LC_ALL=
こういうおかしな状態です。 ログイン時に Defaut Xsession Xfce セッション のどちらを選んでも同じことでした。
現在jessieで使っているmateデスクトップでは https://www.server-world.info/query?os=Debian_9&p=japanese で説明されている IME アイコンのようなものが同じ場所に表示されていますので これを表示させることができればいいのかもしれませんけど、 画面上部パネルの「新しいアイテムの追加」の中を探してもそういう項目はないようです。
なるべくなら他のデスクトップ環境をインストールせずに解決する方法を知りたいのですけど、 どのようにすれば解決できますでしょうか? よろしくお願いします。
Kenji Matsui
debian-users mailing list debian-users@debian.or.jp http://lists.debian.or.jp/mailman/listinfo/debian-users
西山和広です。
On Wed, 19 Jul 2017 18:17:38 +0900, Kenji Matsui wrote:
ルートユーザーとしてデスクップにログインしますと
(略)
root で入ると正常に見えるということは既存のユーザーの $HOME 以下に 何か英語環境にする設定が入ってしまっている気がするので、新規ユーザーを 作って試してみるとどうなるのかが気になりました。
$ 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
のように使えば良いと思います。
松井です。 野方さん、西山さん レスありがとうございます。
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
松井です。 書き忘れていたことがあります。 バグ報告の意味合いもあるかもということで、投稿いたします。
On 2017年07月20日 00:31, Kazuhiro NISHIYAMA wrote:
root で入ると正常に見えるということは既存のユーザーの $HOME 以下に 何か英語環境にする設定が入ってしまっている気がするので、
On 2017年07月20日 15:03, Kenji Matsui wrote:
ちなみに、インストール直後の操作で特別妙なことは何もやってないと思います。 最初のメールに書きました
# 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 をルート権限でやはりスクリプトの一部として実行したくらいです。
この前に、文字化けを直そうとした時に $ LANG=C # update-locale LANG=en_US.UTF-8 LANGUAGE=en_US:en # dpkg-reconfigure locales (en_US.UTF-8 UTF-8 を追加しました) という操作をやりました。
im-config の 「ユーザー設定を選択する。ユーザー設定はシステム設定より優先される。」 において default や ibus を選んで再ログインしても同じことでした。
uim-anthy(mozc はプライバシー面で良くない噂を聞きましたので私はもっぱら anthy や kkc です) をインストールして uim を選んでもやはりうまくいきませんでした。 ibus より uim の方が新しく、これからも長くサポートされる入力システムなのかなと感じましたので少し試してみたのですけど 半角/全角ボタンで日本語と英語の切り替えができるのかどうかさえ分かりません。 uim の設定ってどうやるのでしょう? ibus だと、Mateデスクトップでは画面上部の「システム」→「設定」の中に「iBusの設定」という項目があるのでいいのですけど、 uim はここにはありません。 ツールをインストール後にコマンドを試してみましたが
$ uim-toolbar-qt5 Gtk-Message: Failed to load module "canberra-gtk-module" QPixmap::scaled: Pixmap is a null pixmap QPixmap::scaled: Pixmap is a null pixmap QPixmap::scaled: Pixmap is a null pixmap QPixmap::scaled: Pixmap is a null pixmap QPixmap::scaled: Pixmap is a null pixmap
$ uim-toolbar-gtk3 Gtk-Message: Failed to load module "canberra-gtk-module"
どちらも、ここまで表示されてから先に進まなくなり 処理を ctrl + c で終了させないといけなくなります。 これって http://lists.debian.or.jp/archives/debian-users/201404/msg00004.html に書いてある、
現在のim-configではGUIを選択できないようです。
ということなのでしょうか? uim を設定するには設定ファイルを書き換えるしかないとなると、使い勝手の面で敬遠してしまいそうです。
あと、一番最初に作っていた非rootユーザーに今現在ログインすると
$ 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=
ちゃんとこうなっていますが(いつの間にこうなったのか分かりません)、日本語入力はできません。
--- Kenji Matsui
なんだか、いろいろあれなんですが。
まず、ネットワークにつないでインストールしてください。一番簡単です。 そしてそれなら、netinst.iso で充分ですね。
From: Kenji Matsui kmatsui@earth.kiramori.net Subject: [debian-users 00098] Re: stretchで日本語入力できない Date: Fri, 21 Jul 2017 03:31:43 +0000
この前に、文字化けを直そうとした時に $ LANG=C
ここまではOK。なぜ「文字化け」したか、ですが、予想ですか、 日本語を表示できるフォントが入っていなかったか、素のコンソール だからでしょう。前者だと仮定します。
手順が書いてあったとおりだとすれば、task-japanese パッケージを インストールした時点で日本語フォントが入ると思われます。 (task-japanese-desktop が、より妥当な気もします。こちらも一度 インストールしてみるとよいです)
設定作業、ここではインストール作業をするのですが、そのためには 一時的に英語環境にするだけで充分です。そのための LANG=C です。
フォントの問題であれば、フォントパッケージがインストールされれば 解決となります。
dpkg-reconfigure locales だとか update-locale も locale-gen も /etc/locale.gen をいじるのも不要。というか、余計なことをして 壊している疑いあり。インストール時の設定で充分なはず。
ところで、LANGを変えましたが、これは一時的なものなので、いったん ログアウトしてログインしなおせばよいです。
ibus より uim の方が新しく、これからも長くサポートされる入力システムな のかなと感じましたので少し試してみたのですけど
…。
ちなみに、fcitx なんてのもあります。こちらを試してみるのは どうでしょう。fcitx-kkc も fcitx-anthy もあります。 インストール後にim-config するのをお忘れなく。 そのあと、ログインし直せばいいのかな。
あと、全然関係ないですが
touch /var/mail/root
何の意味があるのでしょうね…。
野方です。
2017年7月20日 15:03 Kenji Matsui kmatsui@earth.kiramori.net:
stretchのライブ版のサイズの大きさに少し驚きましたため、今回は debian-9.0.0-i386-xfce-CD-1.iso(678428672 バイト) これを使ってインストールを行いました。
ほかに考えられる原因は、通常のインストーラだけどネットワークに 繋がってないので必要なパッケージがダウンロードできていないなども考えられます。
私は インストーラーにセキュリティホールが見つかったことがあるかといったことに関する知識がありませんので、 いつもネットに繋がずにインストールを行っております。
日本語の設定がされない原因がわかりました。CDのイメージを使ってインストー ルするときはネットに繋いでインストールしてください。
CD1のイメージは日本語関係のパッケージは入ってないのでネットに繋がずに インストールすると、日本語環境に必要なパッケージがダウンロードできず中 途半端な状態でインストールが終了してしまいます。 その結果、設定を手動でしなければいけなくなったと思われます。
ということで、まずはネットに接続してインストールしてみてください。
セキュリティの心配についてですが、もし、そういう問題があれば対策される と思いますし、どうしても不安でオフラインでインストールをしたいという場 合はDVD1のイメージを利用してください。(容量がかなり大きいですがオフラ インインストールでも日本語関係はきちんと入ります。)
Liveイメージですが、StretchのLiveイメージはインプットメソッドが複数入っ てim-configの設定が必要になるので、今回は使用するのは避けたほうが良い でしょう。
数年前に debian wheezy xfce を初めて使い始めた時は日本語化に本当に苦労しました。 日本語化の設定が面倒であることも debian が一般の人達から敬遠される理由かなと思っていましたので
Wheezyのときも同じことをされてたんでしょうか…。ネットに繋いでいれば日 本語環境の設定はきちんと設定されますので、まずはネットに接続してインス トールしてみてください。
2017年7月20日 15:03 Kenji Matsui kmatsui@earth.kiramori.net:
松井です。 野方さん、西山さん レスありがとうございます。
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 mailing list debian-users@debian.or.jp http://lists.debian.or.jp/mailman/listinfo/debian-users
松井です。 喜瀬さん、野方さん レスありがとうございます。
On 2017年07月22日 01:52, KISE Hiroshi wrote:
ここまではOK。なぜ「文字化け」したか、ですが、予想ですか、 日本語を表示できるフォントが入っていなかったか、素のコンソール だからでしょう。前者だと仮定します。
「素のコンソール」というのは、xfce や Mate などが立ち上がっていない ターミナル画面のみの環境という意味でしょうか? 私は最初からxfceデスクトップにログインしました。
手順が書いてあったとおりだとすれば、task-japanese パッケージを インストールした時点で日本語フォントが入ると思われます。 (task-japanese-desktop が、より妥当な気もします。こちらも一度 インストールしてみるとよいです)
task-japanese-desktop をインストールすると、日本語入力で問題が発生しなくなりました。 xfce においても Mate においても、画面上部のシステムトレイ(panel)にちゃんと uim のアイコンが表示されました。 ただ、ログオフして再ログインすると、またアイコンが消えます。日本語英語の切り替えと日本語入力は問題なくできますものの。 再起動した場合は、アイコンはちゃんと出ているようです。
ツールも次のように表示されますが、ちゃんと起動します。
$ uim-pref-gtk3 Gtk-Message: Failed to load module "canberra-gtk-module"
$ uim-pref-qt5 Gtk-Message: Failed to load module "canberra-gtk-module"
それと、いつのまにかインストールした覚えのない uim-mozc が入っています。 uim-gtk3 や uim-qt5 をインストールした時に入ったのでしょうか・・・ ちなみに、uim には kkc(uim-kkc)がないですね。 anthy より kkc の方が新しいのかなと思い kkc を使い始めたのですが、違ったかな・・・
$ dpkg -l uim-mozc 要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持 | 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留 |/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常) ||/ 名前 バージョン アーキテクチ 説明 +++-==============-============-============-================================= ii uim-mozc:i386 2.19.2623.10 i386 Mozc engine for uim - Client of t
$ dpkg -l ibus-mozc dpkg-query: ibus-mozc に一致するパッケージが見つかりません
ibus より uim の方が新しく、これからも長くサポートされる入力システムな のかなと感じましたので少し試してみたのですけど
…。
ちなみに、fcitx なんてのもあります。こちらを試してみるのは どうでしょう。fcitx-kkc も fcitx-anthy もあります。
ibus より uim の方がこれからも長くサポートされるかどうかなどよく分からない ということでしょうか? 個人的に fcitx はあまり気が進まないので、他のものから選んでいたのですけど。
あと、全然関係ないですが
touch /var/mail/root
何の意味があるのでしょうね…。
$ sudo apt-get upgrade -y をする時にせっかく "-y" オプションをつけていても、 パッケージの変更内容などの通知が出た時にそこで入力待ちになり 全自動で最後までいかないことがあります。 (クリーンインストール直後でこの部分に時間が結構かかる時などは特に、これはウザイです。)
それを防ぐために # dpkg-reconfigure apt-listchanges でパッケージの変更内容の通知法をいつも次のように選んで設定しています。 mail Yes root news
# touch /var/mail/root これをやっておかないと、この設定段階かどこかでエラーが出ていたと思います。 書き忘れていますが、 # apt-get install -y mutt これもやっとかないといけないですね。
On 2017年07月22日 02:24, Jun NOGATA wrote:
セキュリティの心配についてですが、もし、そういう問題があれば対策される と思いますし、どうしても不安でオフラインでインストールをしたいという場 合はDVD1のイメージを利用してください。(容量がかなり大きいですがオフラ インインストールでも日本語関係はきちんと入ります。)
jessie では私はLive版のDVD1(Mate)ばかり使ってオフラインインストールしていまして インストール時に日本語を選択してもインストール直後の文字化けは wheezyと違い解消されていましたが、 スクリプトによる日本語化設定はやらないと日本語入力ができませんでした。
オフラインでインストールした方がインストール直後の状態は完全にマルウェアからクリーンだから と思っていたのですけど、 セキュリティーホールを突かれる可能性は # apt-get upgrade -y をする時にもやはりありますね。
現在のやり方でも日本語入力はできるようになるようですけど、 stretch 9.1 では一回ネットインストールを試してみます。
--- Kenji Matsui
From: Kenji Matsui kmatsui@earth.kiramori.net Subject: [debian-users 00101] Re: stretchで日本語入力できない Date: Sat, 22 Jul 2017 02:10:28 +0000
ここまではOK。なぜ「文字化け」したか、ですが、予想ですか、 日本語を表示できるフォントが入っていなかったか、素のコンソール だからでしょう。前者だと仮定します。
「素のコンソール」というのは、xfce や Mate などが立ち上がっていない ターミナル画面のみの環境という意味でしょうか?
そのつもりで書きました。
私は最初からxfceデスクトップにログインしました。
なるほど。
task-japanese-desktop をインストールすると、日本語入力で問題が発生しな くなりました。
それと、いつのまにかインストールした覚えのない uim-mozc が入っています。
task-japanese-desktop を入れたときに依存関係で入るようです。 https://packages.debian.org/stretch/task-japanese-desktop
または、これ。 $ apt show task-japanese-desktop
task-japanese-desktop の依存関係で入るパッケージが重要なので、 使わないものは個別にアンインストールでもよいと思います。 task-japanese-desktop も含めて。
ちなみに、uim には kkc(uim-kkc)がないですね。 anthy より kkc の方が新しいのかなと思い kkc を使い始めたのですが、違っ たかな・・・
作る人がいなければ存在しないし、利用者が少なければ廃れたりしますので。 libkkc自体、最近の開発は活発ではないっぽい?
$ dpkg -l ibus-mozc dpkg-query: ibus-mozc に一致するパッケージが見つかりません
インストールしたことがないと出てこないので、探すのであれば $ apt search ibus-mozc とか、ウェブで検索とか。 https://www.debian.org/distrib/packages
# ミラーサイトのほうを紹介しようと思ったら、 # https://www.jp.debian.org/ の証明書問題…。
ibus より uim の方が新しく、これからも長くサポートされる入力システムな のかなと感じましたので少し試してみたのですけど
…。
ibus より uim の方がこれからも長くサポートされるかどうかなどよく分から ない ということでしょうか?
調べればわかりますが、uimのほうが歴史は長いです。 そして、長くサポートされる(というか、開発される)かどうかは初出が いつかとは関係ありません。
個人的に fcitx はあまり気が進まないので、他のものから選んでいたのです けど。
まあ、選択肢がある間は、とっかえひっかえ試せばいいんじゃないですかね。
$ sudo apt-get upgrade -y をする時にせっかく "-y" オプションをつけていても、 パッケージの変更内容などの通知が出た時にそこで入力待ちになり 全自動で最後までいかないことがあります。
それを防ぐために # dpkg-reconfigure apt-listchanges でパッケージの変更内容の通知法をいつも次のように選んで設定しています。
環境変数 DEBIAN_FRONTEND を“noninteractive”にするとよいみたいです。 (調べただけで試してはない) それがだめなら PAGER=cat とか(これも試していない)。 または、apt-listchanges をアンインストールとか…。
ちなみに、testing まできている新しいバージョンの apt-listchanges では、 確認のプロンプトで止めない設定ができるようです。
# touch /var/mail/root これをやっておかないと、この設定段階かどこかでエラーが出ていたと思いま す。
そんなことはないと思いますが、試していないのでなんとも。 もし必要だったとして、私だったら、rootにメールを送るほうがいいかな。 (一般ユーザに転送しているとダメですが)
書き忘れていますが、 # apt-get install -y mutt これもやっとかないといけないですね。
メーラーもお好きなものをどーぞ、という感じですね。
松井です。
On 2017年07月22日 11:10, Kenji Matsui wrote:
それを防ぐために # dpkg-reconfigure apt-listchanges でパッケージの変更内容の通知法をいつも次のように選んで設定しています。 mail Yes root news
On 2017年07月22日 16:34, KISE Hiroshi wrote:
# touch /var/mail/root これをやっておかないと、この設定段階かどこかでエラーが出ていたと思いま す。
そんなことはないと思いますが、試していないのでなんとも。 もし必要だったとして、私だったら、rootにメールを送るほうがいいかな。 (一般ユーザに転送しているとダメですが)
おっしゃっている意味がよく分からないのですけど 上述の設定ではrootにメールを送るような設定をしているわけです。 それと、エラーが出たか出ないかは記憶が定かでなくなりつつありますが、 出なかったとしたら、後でしなくてはならない操作はスクリプトで一気にやっちゃおうくらいのノリだと思います。
On 2017年07月22日 02:24, Jun NOGATA wrote:
数年前に debian wheezy xfce を初めて使い始めた時は日本語化に本当に苦労しました。 日本語化の設定が面倒であることも debian が一般の人達から敬遠される理由かなと思っていましたので
Wheezyのときも同じことをされてたんでしょうか…。ネットに繋いでいれば日 本語環境の設定はきちんと設定されますので、まずはネットに接続してインス トールしてみてください。
debian 日本語 というキーワードでググると分かるのですけど、 debianの日本語設定について書いているブログがたくさん出てきます。 ネットに繋がずにインストールをしている人は私以外にも結構おられるようです。 自分で試行錯誤しながら日本語化を試みていると けもの道に分け入ってしまうようなことはよくあるもので、 数年前の段階でも相当古いパッケージを入れる設定をしている方もおられます。
現在の debian においては ネットインストールをすれば日本語設定はほとんどする必要がないということであれば、 http://www.debian.or.jp/index.html か http://www.debian.or.jp/project/ あたりのページに そのことを目立つように書いていただけると、 もっと多くの人が debian を使ってみようという気になってくれると思いますので、 開発者の皆様方、ご検討をよろしくお願いします。
--- Kenji Matsui
From: Kenji Matsui kmatsui@earth.kiramori.net Subject: [debian-users 00104] Re: stretchで日本語入力できない Date: Sun, 23 Jul 2017 08:14:00 +0000
# touch /var/mail/root これをやっておかないと、この設定段階かどこかでエラーが出ていたと思いま す。
そんなことはないと思いますが、試していないのでなんとも。 もし必要だったとして、私だったら、rootにメールを送るほうがいいかな。 (一般ユーザに転送しているとダメですが)
おっしゃっている意味がよく分からないのですけど 上述の設定ではrootにメールを送るような設定をしているわけです。
touchの代わりに、rootにメールを送ることで/var/mail/rootの ファイルを作る、ということです。apt-listchanges の設定とは 別です。
いま気がつきましたが、touchだけでこのファイルを作るのは 正しくありません。正確には、所有者やパーミッションの変更が 抜けています。いったん別名に変えるなどして、確かめてみてください。 (MDAが修正してくれる可能性もあるのか…)
その点では、rootにメールを送る方法のほうが、より正確に 目的を達成できているわけです。
(MDAや設定次第では、ここにメールボックスを作らない場合も ありえますが、それはおいといて)
後半は簡単に。 ・その「スクリプト」は封印すべし。不純物多し。 ・ネット情報の真偽は知らない人には判断できない。古くて偽になることも。 ・宣伝が足りないのは、まあ、そうですね。 (著者の手順でできて当然なので書かない → 検索にヒットしない、かも)
松井です。
On 2017年07月23日 19:32, KISE Hiroshi wrote:
From: Kenji Matsui kmatsui@earth.kiramori.net Subject: [debian-users 00104] Re: stretchで日本語入力できない Date: Sun, 23 Jul 2017 08:14:00 +0000
# touch /var/mail/root これをやっておかないと、この設定段階かどこかでエラーが出ていたと思いま す。
そんなことはないと思いますが、試していないのでなんとも。 もし必要だったとして、私だったら、rootにメールを送るほうがいいかな。 (一般ユーザに転送しているとダメですが)
おっしゃっている意味がよく分からないのですけど 上述の設定ではrootにメールを送るような設定をしているわけです。
touchの代わりに、rootにメールを送ることで/var/mail/rootの ファイルを作る、ということです。apt-listchanges の設定とは 別です。
いま気がつきましたが、touchだけでこのファイルを作るのは 正しくありません。正確には、所有者やパーミッションの変更が 抜けています。いったん別名に変えるなどして、確かめてみてください。 (MDAが修正してくれる可能性もあるのか…)
その点では、rootにメールを送る方法のほうが、より正確に 目的を達成できているわけです。
(MDAや設定次第では、ここにメールボックスを作らない場合も ありえますが、それはおいといて)
少し思いだしましたけど、/var/mail/root を作成していなかった場合は # mutt でmuttを起動した時に
/var/mail/root を作成しますか?
というようなメッセージが出ていたと思いますので、 この段階で作成するのが私には簡単です。
--- Kenji Matsui
松井です。 ネットインストールとDVD1によるインストールを試してみましたが 確かにどちらもユーザー側が日本語化設定など全くする必要なく 日本語入力をすることができました。 (ちなみに、最初に Japan: ftp.jaist.ac.jp: HTTP からDVD1をダウンロードし正常にダウンロードは終了したようでしたが インストールに失敗すると思ったら sha512sum が一致していませんでした。)
ただ、どちらの方法でも mozc(uim-mozc) が入ってしまいます。 uim-mozc を $ sudo apt remove --purge uim-mozc でアンインストールしても 何かその残骸のようなものがシステムに残ってしまわないかを調べる技量が私にはありませんので、 簡単ではあっても私としてはどちらの方法もなるべく避けたいです。
$ apt show task-japanese-desktop - snip - Depends: tasksel (= 3.31+deb8u1) Recommends: iceweasel-l10n-ja, fonts-vlgothic, fonts-ipafont, uim, uim-anthy, uim-mozc, mozc-utils-gui, anthy, libreoffice-l10n-ja, libreoffice-help-ja, poppler-data -snip -
$ apt show task-japanese -snip - Depends: tasksel (= 3.31+deb8u1), manpages-ja, lv Recommends: fbterm, unifont, nkf, manpages-ja-dev -snip -
現在メインで使って日本語入力が問題なくできているいる jessieマシン(ibus-anthyを使用)において task-japanese と task-japanese-desktop のどの依存パッケージ(これらの中から明らかに関係ないと思われるパッケージ以外で)が入っているかを調べると
$ dpkg -l task-japanese dpkg-query: task-japanese に一致するパッケージが見つかりません $ dpkg -l task-japanese-desktop dpkg-query: task-japanese-desktop に一致するパッケージが見つかりません $ dpkg -l fonts-vlgothic dpkg-query: fonts-vlgothic に一致するパッケージが見つかりません $ dpkg -l fonts-ipafont dpkg-query: fonts-ipafont に一致するパッケージが見つかりません $ dpkg -l uim dpkg-query: uim に一致するパッケージが見つかりません $ dpkg -l mozc-utils-gui dpkg-query: mozc-utils-gui に一致するパッケージが見つかりません $ dpkg -l anthy 要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持 | 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留 |/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常) ||/ 名前 バージョン アーキテクチャ 説明 +++-=============================-===================-===================-================================================================ ii anthy 9100h-24 amd64 input method for Japanese - backend, dictionary and utility $ dpkg -l lv dpkg-query: lv に一致するパッケージが見つかりません $ dpkg -l fbterm dpkg-query: fbterm に一致するパッケージが見つかりません $ dpkg -l unifont dpkg-query: unifont に一致するパッケージが見つかりません $ dpkg -l nkf 要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持 | 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留 |/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常) ||/ 名前 バージョン アーキテクチャ 説明 +++-=============================-===================-===================-================================================================ ii nkf 2.13-4 amd64 Network Kanji code conversion Filter
問題なく日本語入力するために鍵となるのは task-japanese, task-japanese-desktop の依存パッケージだとすれば、 ここで調べた結果から判断するかぎり 重要なのは nkf か? とも思えますので、 オフラインインストールできちんと日本語化設定がなされるかも確かめてみようかと思っています。
--- Kenji Matsui
On 2017年07月22日 02:24, Jun NOGATA wrote:
野方です。
2017年7月20日 15:03 Kenji Matsui kmatsui@earth.kiramori.net:
stretchのライブ版のサイズの大きさに少し驚きましたため、今回は debian-9.0.0-i386-xfce-CD-1.iso(678428672 バイト) これを使ってインストールを行いました。
ほかに考えられる原因は、通常のインストーラだけどネットワークに 繋がってないので必要なパッケージがダウンロードできていないなども考えられます。
私は インストーラーにセキュリティホールが見つかったことがあるかといったことに関する知識がありませんので、 いつもネットに繋がずにインストールを行っております。
日本語の設定がされない原因がわかりました。CDのイメージを使ってインストー ルするときはネットに繋いでインストールしてください。
CD1のイメージは日本語関係のパッケージは入ってないのでネットに繋がずに インストールすると、日本語環境に必要なパッケージがダウンロードできず中 途半端な状態でインストールが終了してしまいます。 その結果、設定を手動でしなければいけなくなったと思われます。
ということで、まずはネットに接続してインストールしてみてください。
セキュリティの心配についてですが、もし、そういう問題があれば対策される と思いますし、どうしても不安でオフラインでインストールをしたいという場 合はDVD1のイメージを利用してください。(容量がかなり大きいですがオフラ インインストールでも日本語関係はきちんと入ります。)
Liveイメージですが、StretchのLiveイメージはインプットメソッドが複数入っ てim-configの設定が必要になるので、今回は使用するのは避けたほうが良い でしょう。
数年前に debian wheezy xfce を初めて使い始めた時は日本語化に本当に苦労しました。 日本語化の設定が面倒であることも debian が一般の人達から敬遠される理由かなと思っていましたので
Wheezyのときも同じことをされてたんでしょうか…。ネットに繋いでいれば日 本語環境の設定はきちんと設定されますので、まずはネットに接続してインス トールしてみてください。
とりあえず、動く環境はできたとのことなので、それをリファレンスと することができます。最小限ではないかもしれませんが、この環境に 入っているパッケージが揃っていれば日本語入力はできるであろう、 ということで。
$ dpkg --get-selections
あとは、これをインストール時に入れてあげればよいわけです。 いくつか案はあります。以下、まったく確認していません。
たとえば、カスタムインストールCD(DVD)を作ってみるとか。 好きなパッケージだけで構成することができるはず。
通常のインストールCDでも、追加ソフトウェアのインストールの 段階で、どのタスクも選択せずにインストールを完了させ、あとで 必要なパッケージだけをインストールする、という方法がとれます
インストール途中でシェルを起動することもできるはずなので、 そこでインストールしたいパッケージを指定することもできそうです。
松井です。
親プロセスと子プロセス、 内部コマンド(組み込み関数)と外部コマンドについて、 調べてみてある程度理解できました。 cd なんかも source と同じ結果になりますね。
$ type cd cd はシェル組み込み関数です $ sudo cd sudo: cd: コマンドが見つかりません
なぜ sudo では内部コマンドが実行できないのかなと疑問に感じたのですが ルート権限でしか実行できないコマンドのみ sudo で実行しなさい、 というようなことでしょうか。 何にせよ、おかげさまで勉強になりました。
--- Kenji Matsui
Quoting Kazuhiro NISHIYAMA zn@mbf.nifty.com:
西山和広です。
On Wed, 19 Jul 2017 18:17:38 +0900, Kenji Matsui wrote:
ルートユーザーとしてデスクップにログインしますと
(略)
root で入ると正常に見えるということは既存のユーザーの $HOME 以下に 何か英語環境にする設定が入ってしまっている気がするので、新規ユーザーを 作って試してみるとどうなるのかが気になりました。
$ 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
のように使えば良いと思います。
-- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA) _______________________________________________ debian-users mailing list debian-users@debian.or.jp http://lists.debian.or.jp/mailman/listinfo/debian-users
松井です。
親プロセスと子プロセス、 内部コマンド(組み込み関数)と外部コマンドについて、 調べてみてある程度理解できました。 cd なんかも source と同じ結果になりますね。
$ type cd cd はシェル組み込み関数です $ sudo cd sudo: cd: コマンドが見つかりません
なぜ sudo では内部コマンドが実行できないのかなと疑問に感じたのですが ルート権限でしか実行できないコマンドのみ sudo で実行しなさい、 というようなことでしょうか。 何にせよ、おかげさまで勉強になりました。
--- Kenji Matsui
Quoting Kazuhiro NISHIYAMA zn@mbf.nifty.com:
西山和広です。
On Wed, 19 Jul 2017 18:17:38 +0900, Kenji Matsui wrote:
ルートユーザーとしてデスクップにログインしますと
(略)
root で入ると正常に見えるということは既存のユーザーの $HOME 以下に 何か英語環境にする設定が入ってしまっている気がするので、新規ユーザーを 作って試してみるとどうなるのかが気になりました。
$ 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
のように使えば良いと思います。
-- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA) _______________________________________________ debian-users mailing list debian-users@debian.or.jp http://lists.debian.or.jp/mailman/listinfo/debian-users
全然Debian特有ではないです。
From: Kenji Matsui kmatsui@earth.kiramori.net Subject: [debian-users 00105] Re: stretchで日本語入力できない Date: Sun, 23 Jul 2017 08:23:29 +0000
なぜ sudo では内部コマンドが実行できないのかなと疑問に感じたのですが ルート権限でしか実行できないコマンドのみ sudo で実行しなさい、 というようなことでしょうか。
ちょっと違います。 「ルート権限で実行したいコマンドだけを sudo で実行しなさい」 でしょう。rootだって普通のことがしたいときもあるのです。
なぜ sudo では内部コマンドが実行できないのかなと疑問に感じたのですが
内部コマンドは、実行しているシェルに対する命令です。 ですので、sudoで実行するのは意味不明です。
ということで、sudoでbashを起動して、それで実行すればOK。 (以下、cdするディレクトリに意味はありません) $ cd /tmp $ sudo bash -c 'cd /; pwd' /
もちろん、子プロセスでのシェル操作は親プロセスには影響しませんので…。
$ cd /tmp $ sudo bash -c 'cd /; pwd' / $ pwd /tmp
といった感じ。加えて、子プロセスは実行終了すると消えてしまいます。 次のsudoに引き継がれません。
$ cd /tmp $ sudo bash -c 'pwd' /tmp $ sudo bash -c 'cd /; pwd' / $ sudo bash -c 'pwd' /tmp
どうすればいいか。1回のsudoで一気に実行すればいいわけです。 つまり、一連の手順をシェルスクリプトにして、それをsudoで実行する、と。 そうすれば、シェルスクリプト内に書いたcdもsourceも、環境変数の変更も、 ちゃんと動きます。
余談。pwdですが、bashは内部コマンドで持っていますが、/bin/pwdも あります。
おかげさまで勉強になりました。
--- Kenji Matsui
On 2017年07月23日 20:41, KISE Hiroshi wrote:
全然Debian特有ではないです。
From: Kenji Matsui kmatsui@earth.kiramori.net Subject: [debian-users 00105] Re: stretchで日本語入力できない Date: Sun, 23 Jul 2017 08:23:29 +0000
なぜ sudo では内部コマンドが実行できないのかなと疑問に感じたのですが ルート権限でしか実行できないコマンドのみ sudo で実行しなさい、 というようなことでしょうか。
ちょっと違います。 「ルート権限で実行したいコマンドだけを sudo で実行しなさい」 でしょう。rootだって普通のことがしたいときもあるのです。
なぜ sudo では内部コマンドが実行できないのかなと疑問に感じたのですが
内部コマンドは、実行しているシェルに対する命令です。 ですので、sudoで実行するのは意味不明です。
ということで、sudoでbashを起動して、それで実行すればOK。 (以下、cdするディレクトリに意味はありません) $ cd /tmp $ sudo bash -c 'cd /; pwd' /
もちろん、子プロセスでのシェル操作は親プロセスには影響しませんので…。
$ cd /tmp $ sudo bash -c 'cd /; pwd' / $ pwd /tmp
といった感じ。加えて、子プロセスは実行終了すると消えてしまいます。 次のsudoに引き継がれません。
$ cd /tmp $ sudo bash -c 'pwd' /tmp $ sudo bash -c 'cd /; pwd' / $ sudo bash -c 'pwd' /tmp
どうすればいいか。1回のsudoで一気に実行すればいいわけです。 つまり、一連の手順をシェルスクリプトにして、それをsudoで実行する、と。 そうすれば、シェルスクリプト内に書いたcdもsourceも、環境変数の変更も、 ちゃんと動きます。
余談。pwdですが、bashは内部コマンドで持っていますが、/bin/pwdも あります。