Frank wrote:
> The past few days I've been getting mail from anacron
> about errors like this:
>
> /etc/cron.daily/man-db:
> /usr/bin/mandb: can't set the locale; make sure $LC_* and $LANG are correct

Somewhere along the way you have set the default system locale to one
that doesn't exist.  What is the value stored here:

  cat /etc/default/locale

Is that a valid locale on your system?

> How to go about fixing this ?

The easiest way to fix it is this way:

  # dpkg-reconfigure locales

You are an en_US.UTF-8 the same as me.  I suggest paging down through
the long list of possible locales and verifying that it is selected.
It likely is selected but good to verify.  The second question is the
important one.  It asks:

  Many packages in Debian use locales to display text in the correct
  language for the user. You can choose a default locale for the system
  from the generated locales.

  This will select the default language for the entire system. If this
  system is a multi-user system where not all users are able to speak the
  default language, they will experience difficulties.

  Default locale for the system environment:

                                None
                                en_US.UTF-8

When it says in the above "select the default language for the entire
system" the main effect will be at boot time.  At boot time many
system daemons are started.  What locale will those daemons use?
Those system daemons at boot time will use the value set by the above
into the /etc/default/locale file.  Up through through Debian Wheezy 7
that file is sourced into the /etc/init.d/foo scripts.  Everything is
different in the upcoming Jessie 8 but I can only hope the same
interface functionality for compatibility is provided there.

I think this where your system is broken.  Your symptoms match the
case that the /etc/default/locale file contains a value that wasn't
generated and therefore can't be set.  Make sure that all locales you
use are generated.  Note there is also the locales-all package.

I strongly suggest setting this question to "None" as None will
configure the traditional POSIX Unix C local behavior from the system
and everything will be POSIX standard behavior.  Since you are an
en_US.UTF-8 user this is a good value for you and everything will
behave in a normal way.  Non-English locale users may want to set this
to a non-english locale so that their system errors are logged using
their desired locale setting.  But even then if possible I suggest
using the POSIX standard locale for interoperability.

Bob

Attachment: signature.asc
Description: Digital signature

Reply via email to