Gentoo Archives: gentoo-user

From: daid kahl <daidxor@×××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] zsh and sudo
Date: Sun, 21 Feb 2010 17:10:44
Message-Id: 3ac129341002210833l4bc17346ld0df924f271a2cc7@mail.gmail.com
In Reply to: Re: [gentoo-user] zsh and sudo by Etaoin Shrdlu
1 >> I just installed zsh recently and was working on making the switch
2 >> over from bash for my daily user, provided I can get a few things
3 >> worked out.
4 >>
5 >> The biggest problem that I can't find useful results googling is zsh
6 >> interaction with sudo.
7 >>
8 >> I'm noticing some strange behavior with the PATH and also the
9 >> interpretation of '='.
10 >>
11 [snip]
12 >> So sudo has the PATH set correctly, but it doesn't actually use the
13 >> correct path.  Fishy!
14 >
15 > Nope. If you do
16 >
17 > sudo echo $PATH
18 >
19 > $PATH is replaced by the calling shell before sudo even sees it, so no wonder
20 > you see the right one (btw, this should also answer your other question on why
21 > doing the same on a second instance of the shell seems to "work").
22 > To test what path is seen when sudoing, do
23 >
24 > sudo zsh -c 'echo $PATH'
25 >
26 > that should be more accurate. But you already had an indication of what $PATH
27 > is in your first command above.
28
29 Yes, that's true!
30
31 >
32 > This might be a good read about where to define PATH:
33 >
34 > http://zsh.sourceforge.net/FAQ/zshfaq03.html#l19
35 >
36 >> As for interpretation of '=' I really don't understand what's
37 >> happening.  It seems indiscriminate of the case in terms of mucking
38 >> about, but the exact result it not always the same.  Consider the
39 >> monstrous output in the following simple case of making a new
40 >> environment variable:
41
42 [snip]
43
44 > This looks strange, and would indeed require more investigation. For some
45 > reason, sudo is running /bin/env instead of erroring out (as no command to run
46 > has been specified). However, I doubt that has anything to do with zsh.
47 >
48 >> Or if I want to emerge a specific package, instead I get:
49 >>
50 >> daid@flux log % sudo emerge =sudo-1.7.2_p2-r2
51 >> zsh: sudo-1.7.2_p2-r2 not found
52 >
53 > This is expected. See
54 >
55 > http://zsh.sourceforge.net/Doc/Release/Expansion.html#SEC78
56 >
57 > "unsetopt EQUALS"
58 >
59 > should cure it. Unless, of course, you DO want to take advantage of zsh's
60 > special handling of "=", in which case read the documentation.
61
62 Excellent!
63
64 > Zsh is a wonderfull shell, but it does have a steep learning curve, due to its
65 > many features. Yes, you will bang your head on the wall many and many times if
66 > you don't read the documentation and continue to think in bash terms.
67 > Reading the manual (or the "user friendly" documentation) is a must. Zsh is an
68 > example of an open source project with a massive and excellent documentation,
69 > so no excuses for not reading it! :)
70
71 Etaoin -- your response gave me probably all the tools and conviction
72 I need. I should read documentation before hitting user lists, but I
73 like the gentoo user list for good reasons. The notes about zsh are
74 greatly appreciated, but as long as I command the ability to take the
75 time to learn well documented things, then if nothing else, it's a
76 great learning experience. Using gentoo for me is largely motivated
77 by this personal philosophy, and I changed from bash not because I
78 dislike it but because I wanted to try something new. For example,
79 just reading your response I've learned more about how the path works
80 that I didn't know.
81
82 I'm over my head right now for other work that's more pressing, but it
83 seems like I should be able to get zsh running properly by next week.
84
85 Regarding Helmut's comment:
86
87 > What is echo $SHELL saying?
88
89 > Here, is says /bin/zsh
90 > and your examples works just fine.
91
92 This is a useful suggestion, but I had tried this and confirmed the
93 same output you report. So the problem is buried deeper in my lack of
94 knowledge about the operation of shells. Thanks!
95
96 ~daid