Zsh Mailing List Archive
Messages sorted by:
Re: Broken /etc/zshrc ?
- X-seq: zsh-users 4142
- From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- To: Vincent Lefevre <vincent@xxxxxxxxxx>, zsh-users@xxxxxxxxxx
- Subject: Re: Broken /etc/zshrc ?
- Date: Sun, 19 Aug 2001 18:06:06 +0000
- In-reply-to: <20010819175147.A1889@xxxxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
- References: <20010819175147.A1889@xxxxxxxxxxxx>
On Aug 19, 5:51pm, Vincent Lefevre wrote:
} The /etc/zshrc (system zshrc file) contains the following line:
} source /etc/profile
} Isn't this /etc/zshrc file broken? Shouldn't the /etc/profile
} be sourced in the /etc/zshenv (which doesn't exist here)?
I would think /etc/profile should be sourced in /etc/zprofile, if at all.
/etc/zshenv is sourced by *every* zsh, even non-interactive scripts that
are started with "zsh -f". /etc/profile is intended to be sourced by
login shells. /etc/zshrc is sourced by login shells, but also by other
interactive shells. I'm not sure why so many linux distributors thought
that /etc/profile needed to be read from /etc/zshrc, but it seems to be
a common problem.
RedHat has finally got this bit right as of the 3.0.7 RPM, but that one
still has other cruft in /etc/zshrc. (I haven't looked at the RPMs for
RawHide.) I know the Mandrake folks put quite a bit of thought & effort
into setting up the /etc/z* files because of issues setting up the local
} But /etc/profile sets the path (I think this is OK). Thus, if a
} user sets his path in his .zshenv, then this path is lost because
} /etc/zshrc is sourced after the user's .zshenv file.
This would still be true with /etc/zprofile, unfortunately.
You could put "source ~/.zshenv" in ~/.zshrc ... or you could put
"readonly path" in ~/.zshenv, I suppose. Or in 4.0.x ~/.zshenv could
[[ -o login && -r /etc/zprofile ]] && source /etc/zprofile
[[ -o interactive && -r /etc/zshrc ]] && source /etc/zshrc
[[ -o login && -r /etc/zlogin ]] && source /etc/zlogin
to cause all the /etc/z* files to be loaded before any of your own. In
that case ~/.zlogout should end with
[[ -r /etc/zlogout ]] && source /etc/zlogout
However, if zsh was compiled with a global RCs location other than /etc,
the above could get you into trouble.
} I don't know if the /etc/zshrc was provided when compiling and
} installing zsh or provided by my Linux distribution (SuSE 7.2).
It wasn't provided when compiling and installing zsh. We generally
recommend that (with exceptions like Mandrake's language environment)
the /etc/z* files not be used at all.
Bart Schaefer Brass Lantern Enterprises
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
Messages sorted by: