Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Jun 2013 22:51:07 +0200
From:      Polytropon <freebsd@edvax.de>
To:        "Mike." <the.lists@mgm51.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Setting a locale globally
Message-ID:  <20130614225107.8a39e8e3.freebsd@edvax.de>
In-Reply-To: <201306141554060140.016975D2@smtp.24cl.home>
References:  <201306141213340281.009F8EE9@smtp.24cl.home> <20130614211207.d2d105b8.freebsd@edvax.de> <201306141554060140.016975D2@smtp.24cl.home>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 14 Jun 2013 15:54:06 -0400, Mike. wrote:
> On 6/14/2013 at 9:12 PM Polytropon wrote:
> 
> |On Fri, 14 Jun 2013 12:13:34 -0400, Mike. wrote:
> |> I would like to set the locale of my 9.1 server to
> |> 
> |>    LANG="en_US.ISO8859-1"
> |> 
> |> 
> |> globally, i.e., put the locale entry in one file, and then have the
> |> locale propagate as I go into other shells and run various scripts.
> |
> |You can add this to /etc/csh.cshrc as it will be inherited by
> |all interactive shells (login shells), unless of course they
> |override it with ~/.cshrc:
> |
> |	setenv LANG en_US.ISO8859-1
> 
> That works for the login shell, but when I su to another user (e.g.,
> root), LANG is no longer in the environment.

That depends on _how_ you su. For example, if you use su -m,
the environment will not be modified, but the UID 0 is gained.
See "man su" for details.

But you are correct in terms of what I mentioned: If some
user-configuration changes or unsets $LANG, it will be gone,
and it may even be possible that the setting will not be
transmitted properly to a different shell ("inheriting
environment"), especially if the shell is not the default
login shell, but instead bash or zsh (when the setting is
being made for csh only).



> |It's also possible to add it to /etc/profile and even make an
> |addition to /etc/login.conf's "default" setting:
> |
> |	default:\
> |		:setenv=LANG=en_US.ISO8859-1:...
> 
> That works for the login shell, but when I su to another user (e.g.,
> root), LANG is no longer in the environment.

Try su -m. 

Anyway, login.conf should be the better solution compared
to the csh approach illustrated above. It should work
independently from the kind of shell.



-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130614225107.8a39e8e3.freebsd>