ソフトウェアtmuxはデフォルトではUnicodeの曖昧な文字幅に対応していないので、パッチを入れるかあきらめるかで対処しなければならなかったのだが、最近はLinuxbrewというMacのHomebrew互換のパッケージマネージャ用にパッチ済みのtmuxの設定(Formula)を用意してくれている人がいるようだ。最高なのでそれを使わせてもらおうとLinuxbrewを入れるところから始めたら、ロケール周りではまった。tmuxは変なロケールで起動しようとすると、フォールバックなどせず以下のようなメッセージを出して落ちる。LANGLinuxbrewで、こちらのFormulaを使ってtmuxを入れると、なぜかこの問題が起きる。試しにlocaleを実行して確認してみると、以下のような警告が出た。directoryLANG=ja_JP.UTF-8LC_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=結論から言うと、システムではja_JP.UTF-8が存在するが、Linuxbrewで入ったglibc周りでは存在しないということだった。Linuxbrewでは、glibcが入るときにロケールを無視するらしい。詳しくはわからないのだが、どうもLinuxbrewは環境変数をフィルタリングするらしい。以下のようにして、glibcインストール後のlocaledefなどの処理を再実行すると必要なロケールが入る。localeの名前を取得しているため、ja_JP.utf8のような設定になっていると上記のコマンドがエラーになる。この場合は、ロケールを再設定する。以下のようにlocaledefを手動で実行してもいいかもしれない。ja_JP.utf8ちなみに入れたパッチ済みtmuxはこちら。あとLinuxbrewもバグったところ以外は便利な感じなので今後もいろいろ使ってみたい。(1)はてなブログをはじめよう!xxmagaiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。