解决服务器登录后:-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory

Aug 11, 2025 • 预计阅读时间 1 分钟

把服务器从 Debian 12 升级到 13 后,现在每次 ssh 登录到服务器都会报一堆警告信息:

-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory

解决方法,重新生成一下 locales 就行了:

$ localedef -i en_US -f UTF-8 en_US.UTF-8

另一种方法,Debian 下有专门的命令重新配置 locales:

$ dpkg-reconfigure locales

如果不嫌慢的话,也可以重新生成一遍 localisation 文件:

$ locale-gen

最后,推荐优先使用 localedef 命令,简单快速。

Debian
版权声明:如果转发请带上本文链接和注明来源。

lvv.me

iOS/macOS Developer

让 Safari 中的滚动条颜色自动适配深色模式

升级到 Debian 最新的大版本