今日、私はapt.postgresql.orgを介してUbuntuに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"
実行しましたlocale-gen it_IT.utf8
しかし、実際には:
root@ubuntu:/tmp# locale -a
C
C.UTF-8
en_GB.utf8
en_US.utf8
it_IT.utf8
POSIX
ログに、postgresがit_IT.utf8を認識しない理由に関する意味のある情報がないようです...
新しいロケールの作成後にPostgreSQLが再起動されていない場合は、それが原因です。 service postgresql restart
で十分です。
これはおそらく、ロケールがLinuxで実装されているためですlibc
。新しいロケールは、すでに実行中のプロセスの環境にシームレスにインポートされません。