Arch Linuxサーバーを更新し、tmuxを取得しました:UTF-8ロケール(LC_CTYPE)が必要ですが、ANSI_X3.4-1968があります


29

最近Arch Linuxサーバーを更新しましたが、その過程でtmuxが更新されました。tmuxアップグレードの実行中に使用し、その後使用しましたが、すべて同じSSHセッション中に使用していました。

ただし、今、tmuxコマンドを発行しようとすると、このエラーが発生します。

tmux: need UTF-8 locale (LC_CTYPE) but have ANSI_X3.4-1968

locale -aサーバーからの出力は次のとおりです。

$ locale -a
C
POSIX

私のマシン(Ubuntu 15.10)で:

$ locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX

何が起こっているのですか、どうすれば修正できますか?

回答:


32

同じことが私にも起こりました。上記でトーマスが言ったことに基づいてen_US.UTF-8 UTF-8/etc/locale.genファイルのコメントを外し(以前はコメントが解除されていなかった)、それからを実行することで修正できましたlocale-gen


たとえば、アップグレードにより、カスタマイズされたlocale.genファイルが上書きされる場合があります。
トーマスディッキー

@ThomasDickey Arch Linux ARMは、依存関係が欠落しているために動作しない役に立たないパッケージで出荷するなど、デフォルトイメージでやや物足りないことを行うため、Arch Linux ARMが単に愚かである可能性が高いです。ただし、そのファイルに触れたことはありません。
Hitechcomputergeek

そして、@ RPiAwesomenessのユーザー名から判断すると、問題のサーバーはたまたまArch Linux ARMを実行しているRaspberry Piであると推測しています。(ところで、ラップトップでUbuntuを実行し、PiサーバーでもArchを実行しています)
Hitechcomputergeek

@Hitechcomputergeek実際、デスクトップはUbuntu固有の15.10で、サーバーはArch Linux ARMを搭載したPi 2ですARM:D
RPiAwesomeness

1
システムロケールがen_CA.UTF-8であるため、Debian 9 Stretchへのアップグレードでも同じ問題が発生しました。/etc/locale.genではコメント化されていません。しかし、en_US.UTF-8はコメントアウトされており、tmuxがなければ正確なエラーがスローされました。したがって、ロケールがen_USの場合、この問題は発生しません。
ファルケン教授

3

このリンクに従うと私の問題が解決します:

sudo localectl set-locale LANG=en_CA.UTF-8
# or change to en_US.UTF-8 depends on your locale-gen

/etc/locale.confこの問題を修正するファイルを生成します


ラズベリーランニングアーチアームのこれを修正するには、上記に加えてこれを行う必要がありました。使用私はのでsudo localectl set-locale LANG=nl_BE.UTF-8、私は、エラーに遭遇org.freedesktop.PolicyKit1 not provided on daemonしばらくの間、間違った足の上に私を置くが、私はせずにコマンドを実行したため、このエラーは単にだったsudo(私はすでに上昇していますその端末のオープンを残しての悪い癖を持っている)
oneindelijk

2

おそらく、アップグレードによって、使用していたロケールエイリアスが置き換えられ、新しい名前への有用なアップグレードパスが提供されなかった可能性があります。サーバー上でロケール情報を再生成できますが、問題はファイル/etc/locale.genまたはlocale.confファイルにある可能性があることに注意してください。

参考文献:


2

私もこれを持っていました。私の解決策は…

apt search locales

リストを取得したら、これをインストールします…

apt install locales-all

質問では、パッケージ管理にaptを使用しないArch Linuxについて言及しています。
マット

-1

echo "LC_ALL = en_US.UTF-8" >> / etc / environment
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "LANG = en_US.UTF-8"> / etc / locale .confの
ロケール-GEN EN_US.UTF-8


なぜこれが問題を解決するのですか?そして、あなたの答えは既存のものとどう違うのですか?
-nohillside
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.