Thread: locale -a missing on Alpine Linux?

locale -a missing on Alpine Linux?

From
Peter Eisentraut
Date:
Since 2fe3bdbd691a, initdb has been failing on malleefowl:

performing post-bootstrap initialization ... sh: locale: not found
2022-11-15 23:48:44.288 EST [10436] FATAL:  could not execute command 
"locale -a": command not found
2022-11-15 23:48:44.288 EST [10436] STATEMENT:  SELECT 
pg_import_system_collations('pg_catalog');

That's precisely the kind of thing this patch was supposed to catch, but 
obviously it's not good that initdb is now failing.

First of all, is this a standard installation of this OS, or is perhaps 
something incomplete, broken, or unusual about the current OS installation?



Re: locale -a missing on Alpine Linux?

From
Christoph Moench-Tegeder
Date:
## Peter Eisentraut (peter.eisentraut@enterprisedb.com):

> First of all, is this a standard installation of this OS, or is perhaps 
> something incomplete, broken, or unusual about the current OS installation?

Alpine uses musl libc, on which you need package musl-locales to get
a /usr/bin/locale.
https://pkgs.alpinelinux.org/package/edge/community/x86/musl-locales
https://musl.libc.org/

Regards,
Christoph

-- 
Spare Space



Re: locale -a missing on Alpine Linux?

From
Tom Lane
Date:
Christoph Moench-Tegeder <cmt@burggraben.net> writes:
> ## Peter Eisentraut (peter.eisentraut@enterprisedb.com):
>> First of all, is this a standard installation of this OS, or is perhaps 
>> something incomplete, broken, or unusual about the current OS installation?

> Alpine uses musl libc, on which you need package musl-locales to get
> a /usr/bin/locale.
> https://pkgs.alpinelinux.org/package/edge/community/x86/musl-locales

Ah.  And that also shows that if you didn't install that package,
you don't have any locales either, except presumably C/POSIX.

So probably we should treat failure of the locale command as okay
and just press on with no non-built-in locales.

            regards, tom lane



Re: locale -a missing on Alpine Linux?

From
Peter Eisentraut
Date:
On 16.11.22 20:25, Tom Lane wrote:
> Christoph Moench-Tegeder <cmt@burggraben.net> writes:
>> ## Peter Eisentraut (peter.eisentraut@enterprisedb.com):
>>> First of all, is this a standard installation of this OS, or is perhaps
>>> something incomplete, broken, or unusual about the current OS installation?
> 
>> Alpine uses musl libc, on which you need package musl-locales to get
>> a /usr/bin/locale.
>> https://pkgs.alpinelinux.org/package/edge/community/x86/musl-locales
> 
> Ah.  And that also shows that if you didn't install that package,
> you don't have any locales either, except presumably C/POSIX.
> 
> So probably we should treat failure of the locale command as okay
> and just press on with no non-built-in locales.

That's basically what we had before, so I have just reverted that part 
of my original patch.




Re: locale -a missing on Alpine Linux?

From
Andrew Dunstan
Date:
On 2022-11-16 We 14:25, Tom Lane wrote:
> Christoph Moench-Tegeder <cmt@burggraben.net> writes:
>> ## Peter Eisentraut (peter.eisentraut@enterprisedb.com):
>>> First of all, is this a standard installation of this OS, or is perhaps 
>>> something incomplete, broken, or unusual about the current OS installation?
>> Alpine uses musl libc, on which you need package musl-locales to get
>> a /usr/bin/locale.
>> https://pkgs.alpinelinux.org/package/edge/community/x86/musl-locales
> Ah.  And that also shows that if you didn't install that package,
> you don't have any locales either, except presumably C/POSIX.
>
> So probably we should treat failure of the locale command as okay
> and just press on with no non-built-in locales.


malleefowl is a docker instance (mostly docker images is what Alpine is
used for). It would be extremely easy to recreate the image and add in
musl-locales, but maybe we should just leave it as it is to test the
case where the command isn't available.


cheers


andrew


--
Andrew Dunstan
EDB: https://www.enterprisedb.com




Re: locale -a missing on Alpine Linux?

From
Tom Lane
Date:
Andrew Dunstan <andrew@dunslane.net> writes:
> malleefowl is a docker instance (mostly docker images is what Alpine is
> used for). It would be extremely easy to recreate the image and add in
> musl-locales, but maybe we should just leave it as it is to test the
> case where the command isn't available.

Agreed, leave it as-is.

            regards, tom lane