1.7.7: PATH in Bash shells

Gerry Reno greno@verizon.net
Sun Feb 6 20:43:00 GMT 2011


David, thanks for the response. I put my responses inline...
On 02/06/2011 02:16 PM, David Sastre wrote:
> On Sun, Feb 06, 2011 at 01:33:37PM -0500, Gerry Reno wrote:
>>> What is the proper method to set the PATH variable on a system-wide
>> basis in Cygwin?
>>>> Right now in the Cygwin Bash shell the PATH is set to:
>>>> bash-4.1$ echo $PATH
>> /cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wb
>> em:/cygdrive/c/Program Files (x86)/Microsoft SQL
>> Server/90/Tools/binn/:/usr/bin
>>> First off, I'm curious about how do you start the bash shell. I ask
> because you don't seem to have PS1 set correctly, and that should be
> automated by startup-scripts. 
>
I didn't change anything. This is rather new installation of Cygwin.
I have seen some postinstall script failures on a few packages but would
these be modifying the system-wide PATH variable?
>>>> I think what I need is for the system-wide PATH to look something like this:
>>>> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Program
>> Files (x86)/Microsoft SQL Server/90/Tools/binn/
>>> And that's how it should look like. The fact that you have cygwin's
> paths *after* windows paths in your PATH is something you probably have
> modified by hand.
>
Nope. Haven't changed anything about the PATH.
In a new Cygwin Bash shell:
 bash-4.1$ cd ~
 bash-4.1$ grep -ERHn "PATH *=" * .* --exclude-dir=".*"
 cygcheck.txt:24:HOMEPATH = '\Documents and Settings\Administrator'
 .bash_profile:29:# PATH=${HOME}/bin:${PATH}
 .bash_profile:34:# MANPATH=${HOME}/man:${MANPATH}
 .bash_profile:39:# INFOPATH=${HOME}/info:${INFOPATH}
 bash-4.1$
 bash-4.1$ cd /etc
 bash-4.1$ grep -ERHn "PATH *=" * .* --exclude-dir=".*"
 defaults/etc/profile:31:PATH=/usr/local/bin:/usr/bin:/bin:$PATH
 defaults/etc/profile:34:MANPATH=/usr/local/man:/usr/share/man:/usr/man:$MANPATH
 defaults/etc/profile:37:INFOPATH=/usr/local/info:/usr/share/info:/usr/info:$INFO
 PATH
 defaults/etc/skel/.bash_profile:29:# PATH=${HOME}/bin:${PATH}
 defaults/etc/skel/.bash_profile:34:# MANPATH=${HOME}/man:${MANPATH}
 defaults/etc/skel/.bash_profile:39:# INFOPATH=${HOME}/info:${INFOPATH}
 defaults/etc/sshd_config:6:# This sshd was compiled with
 PATH=/bin:/usr/sbin:/sb
 in:/usr/bin
 postinstall/000-cygwin-post-install.sh.done:11:export PATH="/bin:$PATH"
 postinstall/colorgcc.sh.done:5:PATH=/bin:/sbin:/usr/bin:/usr/sbin
 postinstall/rsnapshot.sh.done:5:PATH=/bin:/sbin:/usr/bin:/usr/sbin
 profile:32:PATH=/usr/local/bin:/usr/bin:/bin:$PATH
 profile:35:MANPATH=/usr/local/man:/usr/share/man:/usr/man:$MANPATH
 profile:38:INFOPATH=/usr/local/info:/usr/share/info:/usr/info:$INFOPATH
 profile.d/lapack0.sh:14: export PATH="${PATH}:${LA_BINDIR}"
 profile.d/lapack0.sh:18: export PATH="${LA_BINDIR}"
 profile.d/openssl.sh:1:export MANPATH="${MANPATH}:/usr/ssl/man"
 rc.d/init.d/postgresql:12:PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sb
 in:/usr/bin
 skel/.bash_profile:29:# PATH=${HOME}/bin:${PATH}
 skel/.bash_profile:34:# MANPATH=${HOME}/man:${MANPATH}
 skel/.bash_profile:39:# INFOPATH=${HOME}/info:${INFOPATH}
 sshd_config:6:# This sshd was compiled with
 PATH=/bin:/usr/sbin:/sbin:/usr/bin
 bash-4.1$
 bash-4.1$ cat /Cygwin.bat
 @echo off
 C:
 chdir C:\cygwin\bin
 REM bash --verbose --login -i
 bash -i
 pause
 bash-4.1$
I have not changed anything about PATH anywhere.
>>>> Is the PATH setting I'm looking for workable with Cygwin? 
>>> The PATH variable in cygwin is exported from your /etc/profile
> file, which contains a line that sets cygwin's path with higher
> precedence over the PATH inherited from windows.
>
Yep, I see it. So why isn't it working?
>>> Or do the Windows paths need to come first for some reason?
>>> Quite the opposite.
>
That's what I thought.
>>> Is there some guiding document about setting PATH system-wide to better
>> support scripts from Linux?
>>>> Yes. The info you need is in the bash manpage, INVOCATION section.
>>
bash-4.1$ man bash
(END)
No man pages.
How do you get the man page generated?
And here's the tail end of /var/log/setup.log.full:
 2011年02月06日 12:01:40 running: C:\cygwin\bin\bash.exe --norc
 --noprofile /etc/post
 install/coreutils.sh
 2011年02月06日 12:01:41 abnormal exit: exit code=128
 2011年02月06日 12:01:41 running: C:\cygwin\bin\bash.exe --norc
 --noprofile /etc/post
 install/bash.sh
 2011年02月06日 12:01:41 abnormal exit: exit code=128
 2011年02月06日 12:01:41 running: C:\cygwin\bin\bash.exe --norc
 --noprofile /etc/post
 install/update-info-dir.sh
 2011年02月06日 12:02:24 running: C:\cygwin\bin\bash.exe --norc
 --noprofile /etc/post
 install/libglade2.0.sh
 could not open /etc/xml/catalog for saving
 add command failed
 2011年02月06日 12:02:25 abnormal exit: exit code=2
 2011年02月06日 12:02:25 Changing gid to Administrators
 2011年02月06日 12:03:00 note: Installation Complete
 2011年02月06日 12:03:00 Ending cygwin install
Regards,
Gerry
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple


More information about the Cygwin mailing list

AltStyle によって変換されたページ (->オリジナル) /