Đã cập nhật máy chủ linux arch của tôi và bây giờ tôi nhận được tmux: cần ngôn ngữ UTF-8 (LC_CTYPE) nhưng có ANSI_X3.4-1968


29

Gần đây tôi đã cập nhật máy chủ Arch Linux của mình và trong quá trình đó, tmux đã được cập nhật. Tôi đã sử dụng tmuxtrong khi quá trình nâng cấp đang diễn ra và sử dụng nó sau đó, nhưng tất cả trong cùng một phiên SSH.

Tuy nhiên, bây giờ, bất cứ khi nào tôi cố gắng đưa ra bất kỳ tmuxlệnh nào, tôi đều gặp lỗi này:

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

Đây là đầu ra từ locale -atrên máy chủ:

$ locale -a
C
POSIX

và trên máy của tôi (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

Chuyện gì đang xảy ra và làm cách nào để khắc phục nó?

Câu trả lời:


32

Điều tương tự chính xác đã xảy ra với tôi. Dựa trên những gì Thomas đã nói ở trên, tôi đã có thể khắc phục bằng cách bỏ ghi chú en_US.UTF-8 UTF-8trong /etc/locale.gentệp của mình (trước đây không có dòng nào bị thiếu), sau đó chạy locale-gen.


Ví dụ: bản nâng cấp có thể đã ghi đè lên locale.gentệp tùy chỉnh của bạn .
Thomas Dickey

@ThomasDickey Nhiều khả năng Arch Linux ARM chỉ là ngu ngốc, vì Arch Linux ARM thực hiện một số thứ khá ngu ngốc trong hình ảnh mặc định như vận chuyển với các gói vô dụng không hoạt động vì chúng thiếu phụ thuộc. Tôi biết tôi không bao giờ chạm vào tập tin đó, mặc dù.
Hitechcomputergeek

Và, đánh giá từ tên người dùng của @ RPiAwesomeness, tôi đoán rằng máy chủ đang nghi vấn là Raspberry Pi chạy Arch Linux ARM. (btw Tôi cũng chạy Ubuntu trên máy tính xách tay của tôi và Arch trên máy chủ Pi của tôi)
Hitechcomputergeek

@Hitechcomputergeek Thật vậy, máy tính để bàn là Ubuntu đúng 15.10 và máy chủ là Pi 2 với Arch Linux ARM: D
RPiAwesomeness

1
Tôi gặp vấn đề tương tự khi nâng cấp lên Debian 9 Stretch, vì ngôn ngữ hệ thống của tôi là en_CA.UTF-8. Điều đó đã không được bình luận trong /etc/locale.gen. Nhưng en_US.UTF-8 đã được nhận xét và không có điều đó tmux đã ném lỗi chính xác đó. Vì vậy, điều đó cho thấy nếu địa điểm của bạn là en_US thì bạn sẽ không thấy vấn đề này.
Giáo sư Falken

3

Theo liên kết này giải quyết vấn đề của tôi:

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

nó tạo ra một tập tin /etc/locale.confkhắc phục vấn đề này


Tôi đã phải làm điều này ngoài việc ở trên để sửa lỗi này cho cánh tay chạy mâm xôi của tôi. Vì vậy, tôi đã sử dụng, sudo localectl set-locale LANG=nl_BE.UTF-8tôi cũng gặp phải một lỗi org.freedesktop.PolicyKit1 not provided on daemonkhiến tôi gặp phải lỗi trong một thời gian, nhưng lỗi này chỉ đơn giản là vì tôi đã chạy lệnh mà không có sudo(tôi có một thói quen xấu là để một thiết bị đầu cuối mở ra)
oneindelijk

2

Có lẽ bản nâng cấp của bạn đã thay thế bí danh miền địa phương bạn đang sử dụng và không cung cấp đường dẫn nâng cấp hữu ích cho (các) tên mới. Bạn có thể tạo lại thông tin ngôn ngữ trên máy chủ, nhưng hãy nhớ rằng vấn đề có thể nằm ở tệp /etc/locale.genhoặc locale.conftệp của bạn .

Đọc thêm:


2

Tôi đã có cái này là tốt. Giải pháp của tôi là LỚN

apt search locales

Tôi có một danh sách, sau đó cài đặt bản này

apt install locales-all

Câu hỏi đề cập đến Arch Linux, không sử dụng apt để quản lý gói.
matt

-1

echo "LC_ALL = en_US.UTF-8" >> / etc / môi trường
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "LANG = en_US.UTF-8"> / etc / locale .conf
locale-gen en_US.UTF-8


Tại sao điều này giải quyết vấn đề? Và câu trả lời của bạn khác với những câu đã có như thế nào?
nohillside
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.