在Ubuntu 12.04上安装Postgresql 9.2

10

安装postgresql 9.2时,我按照这个链接的指示进行操作:http://www.ubuntugeek.com/how-to-install-postgresql-9-2-on-ubuntu-server-using-ppa.html

但是安装结束后的输出结果如下:

Setting up postgresql-common (140~precise) ...
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
Adding user postgres to group ssl-cert
Building PostgreSQL dictionaries from installed myspell/hunspell packages...
 * No PostgreSQL clusters exist; see "man pg_createcluster"
Setting up postgresql-9.2 (9.2.4-0ppa1~precise) ...
Error: The locale requested by the environment is invalid.
Error: could not create default cluster. Please create it manually with

  pg_createcluster 9.2 main --start

or a similar command (see 'man pg_createcluster').
update-alternatives: using /usr/share/postgresql/9.2/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode.
 * No PostgreSQL clusters exist; see "man pg_createcluster"
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place

我尝试启动postgresql时,出现以下错误:

sudo /etc/init.d/postgresql start
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_MESSAGES = "en_IN.UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
 * No PostgreSQL clusters exist; see "man pg_createcluster"

我该如何解决这个问题?

2个回答

27

我尝试了所有能找到的解决方案,最终发现这篇文章解决了问题:

http://ubuntuforums.org/showthread.php?t=1720356

基本上,将您想要添加的语言添加到 /etc/environment 中即可。 在我的情况下:

sudo nano /etc/environment

然后将以下内容添加到文件末尾:
LC_ALL="en_US.utf-8"

然后重新启动服务器。
sudo reboot

19

您的系统本地化配置出了问题。您的LC_MESSAGES设置为en_IN.UTF-8,但是LANG设置为en_US.UTF-8,这很奇怪且不一致。您是否在~/.bash_profile/etc/environment或其他位置设置了LC_MESSAGES

您真的应该执行dpkg-reconfigure locales命令。请参见在Ubuntu中选择和生成区域设置的方法

一旦您解决了本地化设置问题,您可以按错误提示使用pg_wrapper命令pg_createcluster 9.2 main --start创建集群。之后,启动服务将会工作。


在此之前,我安装了SDK6,但它没有出现任何错误。那么为什么PostgreSQL出问题了呢? - Naresh J
@NareshJ,“SDK6”是什么?您可能是指“OpenJDK 6 SDK”吗?答案是,有些程序并不介意您的区域设置完全损坏。但PostgreSQL却介意。您需要重新生成您的区域设置,以便实际存在en_US.UTF-8en_IN.UTF-8的区域数据。 - Craig Ringer
2
嘿,谢谢你。我通过完全删除Postgres,然后安装language-pack-en-base,再重新安装PostgreSQL来解决了问题。它起作用了。再次感谢你准确地指出错误。 :) - Naresh J

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接