Уже нашли решение для этого ( см. Ответ ниже ), но я не уверен, что оно подходит;плюс это может помочь кому-то еще.
Попытался настроить PostgreSQL, следуя документации ( 18.2 Создание кластера базы данных ), но получил следующую ошибку в Ubuntu 18.04 (ядро: 4.15.0-22-generic):
$ initdb -D /usr/local/pgsql/data
(...)
initdb: invalid locale settings; check LANG and LC_* environment variables
Нашел пару ответов по Stackoverflow ( 1 , 2 ), которые были актуальны, но они этого не сделалирешите проблему, и на Serverfault предложили перезапустить службу, но PostgreSQL даже не работал.
Попытка явно передать языковой стандарт в каждом варианте, обнаруженном в системе, ноони тоже не сработали,
3617 2018/06/07-08:36 initdb -D ~/Downloads/ --locale=en_US.utf8
3618 2018/06/07-08:36 initdb -D ~/Downloads/ --locale=en_US.UTF8
3621 2018/06/07-08:37 initdb -D ~/Downloads/ --locale=en_US.UTF-8
3622 2018/06/07-08:37 initdb -D ~/Downloads/ --locale="en_US.UTF-8"
3623 2018/06/07-08:37 initdb -D ~/Downloads/ --locale="en_US.utf8"
3645 2018/06/07-09:24 initdb -D ~/Downloads/ --locale="en_US.utf8"
с
initdb: invalid locale name <the_option_value_above>
На форуме Arch Linux по этому поводу обсуждалось *1026*, но решения не было.
2018/06/07 ОБНОВЛЕНИЕ 1214
Я связал ответы выше, но, возможно, не был достаточно явным: я посмотрел на locale -a
и locale
(не перечисляя вывод первого, потому что я установилВСЕ из них в моих попытках ниже):
$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
Чтобыли опробованы, но не работали (и терминал был перезапущен для каждой итерации):
TODO: https://unix.stackexchange.com/questions/294845/bash-warning-setlocale-lc-all-cannot-change-locale-en-us-utf-8