Ubuntu 12.04 上的 Postgresql 9.2“无效的语言环境名称”

gio*_*iga 9 postgresql ubuntu ubuntu-12.04

今天,我通过 apt.postgresql.org 在 Ubuntu precision 上安装了 Postgresql 9.2——一切都相对轻松,直到我陷入“无效的语言环境名称:it_IT.utf8”错误:

root@ubuntu:/tmp# sudo -u postgres psql -Xc "CREATE DATABASE test TEMPLATE template0 ENCODING 'utf8' LC_CTYPE='it_IT.utf8'"
ERROR:  invalid locale name: "it_IT.utf8"
Run Code Online (Sandbox Code Playgroud)

我确实跑locale-gen it_IT.utf8了,事实上:

root@ubuntu:/tmp# locale -a
C
C.UTF-8
en_GB.utf8
en_US.utf8
it_IT.utf8
POSIX
Run Code Online (Sandbox Code Playgroud)

日志似乎没有关于为什么 postgres 无法识别 it_IT.utf8 的任何有意义的信息...你能帮忙吗?

Dan*_*ité 20

如果在创建新语言环境后 PostgreSQL 没有重新启动,这就是原因。service postgresql restart应该足够了。

这大概是由于在 Linux 中如何实现语言环境libc。新的语言环境不会无缝导入到已经运行的进程的环境中。