in some environments LOCALE_ARCHIVE can be unset
and the default file can be "empty"
$ du -sh /usr/lib/locale/locale-archive
2.2M
$ du -sh ~/.nix-portable/nix/store/xx5an8dhxd4a5qxgdsk3xqz5zmngj4y2-glibc-locales-2.39-5/lib/locale/locale-archive
220M
this happens when /etc/locale.conf is missing or empty
and/or when /etc/locale.gen is read-only
$ ls /etc/locale.conf
ls: cannot access '/etc/locale.conf': No such file or directory
$ stat -c%a /etc/locale.gen
600
... in other words, no locales were generated
and only the default locale C.UTF-8 is available
$ ls /usr/lib/locale/
C.UTF-8 locale-archive
problem is, this breaks qt-based programs like qbittorrent
$ nix-shell -p qbittorrent-nox
$ qbittorrent-nox
Detected locale "C" with character encoding "ANSI_X3.4-1968", which is not UTF-8.
Qt depends on a UTF-8 locale, and has switched to "C.UTF-8" instead.
If this causes problems, reconfigure your locale. See the locale(1) manual
for more information.
This package contains tools to generate locale definitions from source files (included in this package). It allows you to customize which definitions actually get generated. This is a space-saver over how this package used to be, with all locales generated by default. This created a package that unpacked to an excess of 30 megs.
in nixos, LOCALE_ARCHIVE is set by the i18n module nixos/modules/config/i18n.nix
in some environments
LOCALE_ARCHIVE
can be unset and the default file can be "empty"this happens when
/etc/locale.conf
is missing or empty and/or when/etc/locale.gen
is read-only... in other words, no locales were generated and only the default locale
C.UTF-8
is availableproblem is, this breaks qt-based programs like qbittorrent
the debian solution for this problem is
en_US.UTF-8
) to/etc/locale.conf
sudo locale-gen
in debian, the files in
/usr/lib/locale/
are generated bylocale-gen
https://packages.debian.org/sid/locales
in nixos, LOCALE_ARCHIVE is set by the
i18n
modulenixos/modules/config/i18n.nix
quickfix: use this wrapper as
nix-shell
edit:
not really, this is just a warning