在 Ubuntu 15.04 VPS 中更改语言环境未保存
Changing locale in Ubuntu 15.04 VPS is not being saved
我刚买了一个 VPS,我正在使用 SSH 播放它。
在安装了几个软件包之后,我发现我的区域设置有问题(我需要 en_US.UTF-8
但我有 Latin1
。我用谷歌搜索了它,但即使我认为我已经更改了区域设置,它们仍然保留回到原来的,我仍然遇到软件安装问题。
所以,我得到:
root@myname:~# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=pt_PT.UTF-8
LANGUAGE=
LC_CTYPE="pt_PT.UTF-8"
LC_NUMERIC="pt_PT.UTF-8"
LC_TIME="pt_PT.UTF-8"
LC_COLLATE="pt_PT.UTF-8"
LC_MONETARY="pt_PT.UTF-8"
LC_MESSAGES="pt_PT.UTF-8"
LC_PAPER="pt_PT.UTF-8"
LC_NAME="pt_PT.UTF-8"
LC_ADDRESS="pt_PT.UTF-8"
LC_TELEPHONE="pt_PT.UTF-8"
LC_MEASUREMENT="pt_PT.UTF-8"
LC_IDENTIFICATION="pt_PT.UTF-8"
LC_ALL=
但是之前,我做过:
locale-gen en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
export LS_ALL=en_US.UTF-8
那么,我能永远解决这个问题吗?
PS:我正在使用 SSH 完成所有这些工作。
那是因为我在本地机器上的 locale
设置为葡萄牙语,SSH
转发到服务器并尝试在服务器上使用,但服务器没有安装它。
我本可以停止将 locale
环境变量从我的本地机器转发到服务器。为此,我会在本地 /etc/ssh/ssh_config
文件中注释 SendEnv LANG LC_*
行。
相反,我决定:
1) 生成 locale
- 在服务器上用 sudo locale-gen en_US.UTF-8
生成英文 locale
2) 停止从我的本地计算机到服务器接受 locale
环境变量。为此,我在远程 /etc/ssh/sshd_config
文件中注释了 AcceptEnv LANG LC_*
行。请注意,为此我必须安装 nano 包来编辑文件(在 sudo apt-get install nano
之后,当我在文件目录中时,我只是做了 nano filename
)。
3) 将服务器 locale
设置为英语 - 通过再次使用 nano filename
将以下行添加到我的远程 ~/.bashrc
或 ~/.profile
文件中(不要忘记它们是内部的隐藏文件您的主目录,这样它们就不会出现在简单的 ls
搜索中;您需要使用 ls -la
命令:
export LANGUAGE="en"
export LANG="C"
export LC_MESSAGES="C"
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
export LS_ALL=en_US.UTF-8
我还重新启动了 VM,在此之前我关闭了 SSH 会话并重新进入以查看更改是否有效。
我刚买了一个 VPS,我正在使用 SSH 播放它。
在安装了几个软件包之后,我发现我的区域设置有问题(我需要 en_US.UTF-8
但我有 Latin1
。我用谷歌搜索了它,但即使我认为我已经更改了区域设置,它们仍然保留回到原来的,我仍然遇到软件安装问题。
所以,我得到:
root@myname:~# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=pt_PT.UTF-8
LANGUAGE=
LC_CTYPE="pt_PT.UTF-8"
LC_NUMERIC="pt_PT.UTF-8"
LC_TIME="pt_PT.UTF-8"
LC_COLLATE="pt_PT.UTF-8"
LC_MONETARY="pt_PT.UTF-8"
LC_MESSAGES="pt_PT.UTF-8"
LC_PAPER="pt_PT.UTF-8"
LC_NAME="pt_PT.UTF-8"
LC_ADDRESS="pt_PT.UTF-8"
LC_TELEPHONE="pt_PT.UTF-8"
LC_MEASUREMENT="pt_PT.UTF-8"
LC_IDENTIFICATION="pt_PT.UTF-8"
LC_ALL=
但是之前,我做过:
locale-gen en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
export LS_ALL=en_US.UTF-8
那么,我能永远解决这个问题吗?
PS:我正在使用 SSH 完成所有这些工作。
那是因为我在本地机器上的 locale
设置为葡萄牙语,SSH
转发到服务器并尝试在服务器上使用,但服务器没有安装它。
我本可以停止将 locale
环境变量从我的本地机器转发到服务器。为此,我会在本地 /etc/ssh/ssh_config
文件中注释 SendEnv LANG LC_*
行。
相反,我决定:
1) 生成 locale
- 在服务器上用 sudo locale-gen en_US.UTF-8
生成英文 locale
2) 停止从我的本地计算机到服务器接受 locale
环境变量。为此,我在远程 /etc/ssh/sshd_config
文件中注释了 AcceptEnv LANG LC_*
行。请注意,为此我必须安装 nano 包来编辑文件(在 sudo apt-get install nano
之后,当我在文件目录中时,我只是做了 nano filename
)。
3) 将服务器 locale
设置为英语 - 通过再次使用 nano filename
将以下行添加到我的远程 ~/.bashrc
或 ~/.profile
文件中(不要忘记它们是内部的隐藏文件您的主目录,这样它们就不会出现在简单的 ls
搜索中;您需要使用 ls -la
命令:
export LANGUAGE="en"
export LANG="C"
export LC_MESSAGES="C"
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
export LS_ALL=en_US.UTF-8
我还重新启动了 VM,在此之前我关闭了 SSH 会话并重新进入以查看更改是否有效。