Open JelteF opened 2 years ago
I just ran into this and found a workaround - install glibc-i18n
which (at a whopping 15Mb!) includes all the additional locale definition files.
Still seems like locale-gen.sh
should work out of the box without needing to install other packages manually.
@JelteF, Install the package glibc-i18n since it is not pre-installed. We are closing the issue since it is not a bug.
I really don't understand why you are not considering this a bug. The en_US.ISO-8859-1
locale does not work!
@JelteF , as we informed you, we have created internal ADO bug to handle the issue and we are re-opening this issue.
To document my clarification of the problem here too. The locale-gen.sh
command that's included in the base image fails when run.
❯ docker run -it mcr.microsoft.com/cbl-mariner/base/core:2.0 /bin/bash
root [ / ]# locale-gen.sh
Generating locales...
en_US.ISO-8859-1...[error] cannot open locale definition file `en_GB': No such file or directory
I feel like there are two options to resolve this:
locale-gen.sh
in the base image and only install it when glibc-i18n
is installed. And the same should then be done for the file /usr/share/i18n/locales/en_US
.locale-gen.sh
doesn't fail when run by removing the en_US
lines from /etc/locale-gen.conf
. (and probably also removing /usr/share/i18n/locales/en_US
.locale-gen.sh
doesn't fail when run by adding all the necessary files for en_US
to be compiled to the base image.Issue is reported on 2022 and now Azure Flexible Servers are using CBL Mariner OS (AzureLinux) and we can't create DBs with UTF8 encoding for en_GB
psql:/tmp/dbSetup.sql:55: ERROR: encoding "UTF8" does not match locale "en_GB.utf8"
DETAIL: The chosen LC_CTYPE setting requires encoding "LATIN9".
as collencoding is 16 (it should be 6 for UTF8 but 16 for LATIN9)
SELECT *
FROM pg_collation
WHERE collname like 'en_GB.utf8';
oid | collname | collnamespace | collowner | collprovider | collisdeterministic | collencoding | collcollate | collctype | collversion
-------+------------+---------------+-----------+--------------+---------------------+--------------+-------------+------------+-------------
12518 | en_GB.utf8 | 11 | 10 | c | t | 16 | en_GB.utf8 | en_GB.utf8 | 2.35
Issue is reported on 2022 and now Azure Flexible Servers are using CBL Mariner OS (AzureLinux) and we can't create DBs with UTF8 encoding for en_GB
psql:/tmp/dbSetup.sql:55: ERROR: encoding "UTF8" does not match locale "en_GB.utf8" DETAIL: The chosen LC_CTYPE setting requires encoding "LATIN9".
as collencoding is 16 (it should be 6 for UTF8 but 16 for LATIN9)
SELECT * FROM pg_collation WHERE collname like 'en_GB.utf8'; oid | collname | collnamespace | collowner | collprovider | collisdeterministic | collencoding | collcollate | collctype | collversion -------+------------+---------------+-----------+--------------+---------------------+--------------+-------------+------------+------------- 12518 | en_GB.utf8 | 11 | 10 | c | t | 16 | en_GB.utf8 | en_GB.utf8 | 2.35
As on Azure Flexible Server you can't install a new package (ie. glibc-i18n or others) I think that needs to be handled on Azure side
The file
/usr/share/i18n/locales
contains onlyen_US
, but that file references other locale files that are not part of the Mariner installation.So when you run
locale-gen.sh
you get the following error:To make locale generation work I had to copy the following locales from my Ubuntu install: