На новой копии сервера 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 не запустился :(
Что мне нужно сделать, чтобы стать счастливым?
Принятый ответ мне не помог; если есть такие, как я, прочтите ниже.
Я проследил проблему до pg_upgradecluster
явно расстраивающий LC_ALL
. Это привело к сбою Perl, как бы я ни играл с другими переменными среды.
Я просто прокомментировал строку 352 в /usr/bin/pg_upgradecluster
:
#delete $ENV{'LC_ALL'};
Это сработало. Конечно, это будет работать только в том случае, если вы обычный Джо с en_US.UTF-8 во всех кластерах и не используете какие-либо причудливые кодировки, которые вам нужно сохранить.
Также действуют текущие переменные среды. Используйте команду
locale
чтобы увидеть, что видит Postgres, и обновить, используя export
заявления, например:
export LANGUAGE="en_US.UTF-8"
Мне помогли эти строки:
echo 'LANGUAGE="en_US.UTF-8"' >> /etc/default/locale
echo 'LC_ALL="en_US.UTF-8"' >> /etc/default/locale
К счастью для вас, мне пришлось поискать в своих заметках по этой проблеме, но вы задали ее в сентябре 2011 года.
Проверьте эти ссылки - заручитесь помощью Google Translate
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