在新的 Ubuntu 11.04 服务器上,我尝试通过 安装 PostgreSQL 服务器apt-get install postgresql
。但是在安装日志的最后我看到:
Error: could not create default cluster. Please create it manually with
pg_createcluster 8.4 main --start
当我运行此命令时,我看到了以下消息:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US:en",
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.
并且没有启动 PostgreSQL 服务器 :(
我需要做什么才能对此感到高兴?
答案1
接受的答案对我没有帮助;如果还有其他人和我一样,请阅读下文。
我追踪到问题出在pg_upgradecluster
明确取消设置LC_ALL
。无论我以何种方式使用其他环境变量,这都会导致 Perl 失败。
所以我所做的就是简单地注释掉第 352 行/usr/bin/pg_upgradecluster
:
#delete $ENV{'LC_ALL'};
这招奏效了。当然,这只在你是一个普通人,所有集群都使用 en_US.UTF-8 并且不使用任何需要保留的花哨编码时才有效。
答案2
这句话对我有帮助:
echo 'LANGUAGE="en_US.UTF-8"' >> /etc/default/locale
echo 'LC_ALL="en_US.UTF-8"' >> /etc/default/locale
答案3
当前环境变量也有效。使用命令
locale
查看 Postgres 看到的内容,并使用export
语句进行更新,例如:
export LANGUAGE="en_US.UTF-8"
答案4
幸运的是,我必须查阅我的笔记来解决这个问题,但你是在 2011 年 9 月问这个问题的。
检查这些链接 - 寻求谷歌翻译的帮助
http://www.thomas-krenn.com/de/wiki/Perl_warning_Setting_locale_failed_unter_Debian
http://www.thomas-krenn.com/de/wiki/Locales_unter_Ubuntu_konfigurieren
https://help.ubuntu.com/community/Locale#List_current_settings