Re: Locale won't set
I believe I'm getting closer.
I can't reinstall locales because with locales broken, I can't install
any packages. Is it possible to do a package installation without its
calling locales?
Mathias' suggestion that I run strace on the locale command did lead
me to stumble on a likely culprit:
$ strace -eopen locale -a
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
open("/usr/lib/locale/en_US.UTF-8/LC_CTYPE", O_RDONLY) = -1 ENOENT (No such file or directory)
...
This -1 error and the others that followed led me to
/usr/lib/locales. I found no no "en_UTF-8" directory there, but to
judge from backups, apparently there shouldn't be. My guess is that
the the values for the locales variables are looked up in the
locale-archive binary file found there.
I did discover that my last four system backups had a
/usr/lib/locale/local-archive file that was about 1.21 Mb in size and
had remained the same since I first installed etch in April. However,
a week ago the file suddenly shrank to 320 Kb.
It seemed likely to me that this file was broken at that time, and a
simple fix would be to copy the old version of the locale-archive file
over from the backup. However, given that I don't have any clue how
the locale system works, I'd appreciate a suggestion that a simple
recovery of the original locale-archive file from backup would be
OK and whether there are any other steps I need to take.
--
Haines Brown, KB1GRM
Reply to: