2016-05-17 43 views
1

当我运行:如何设置的区域设置,而从9.3升级到PostgreSQL的9.4

sudo pg_upgradecluster 9.3 main 

我得到这个错误:

> perl: warning: Falling back to the standard locale ("C"). perl: 
> warning: Setting locale failed. perl: warning: Please check that your 
> locale settings: LANGUAGE = (unset),  LC_ALL = (unset), LC_CTYPE = 
> "UTF-8", LANG = "en_US.UTF-8" 
>  are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). Error: The locale requested by the 
> environment is invalid. Error: Could not create target cluster 

如何改变才能执行此命令的语言环境?

+0

1)这有什么好做用Perl或PostgreSQL。如果你运行'locale',你会得到相同的警告。 2)问题并没有阻止程序运行。 Perl简单地使用了一个不同于本地的补偿。 – ikegami

回答

1

你需要运行这个命令:

aptitude install language-pack-es-base 
locale-gen 
​ 
export LANGUAGE=en_US.UTF-8 
export LANG=en_US.UTF-8 
export LC_ALL=en_US.UTF-8 
locale-gen en_US.UTF-8 
dpkg-reconfigure locales 
​ 
echo LANGUAGE=en_US.UTF-8 > /etc/default/locale 
echo LANG=en_US.UTF-8 >> /etc/default/locale 
echo export LC_ALL=en_US.UTF-8 >> /etc/default/locale 

这将解决您的问题。

0

当您从Mac笔记本电脑到Linux服务器(包括笔记本电脑上运行的虚拟Linux服务器)进行SSH时,会发生这种情况。 SSH将LANGLC_*环境变量从本地shell转发到远程shell,并且Mac上使用的某些值在Linux服务器上无效。

可以通过多种方式解决该问题,包括在服务器上安装缺少的语言环境。我建议在服务器上(删除AcceptEnv/etc/ssh/sshd_config)或笔记本电脑(删除SendEnv/etc/ssh/ssh_config)或两者都禁用SSH环境转发。

详情请阅读How to fix a locale setting warning from Perl?