[arch-general] chsh, linux32 and $PATH

Allan McRae allan at archlinux.org
Sun Jan 24 20:49:26 EST 2010


I am trying to seamlessly run an x86_64 kernel on my i686 machine.  I 
have enough aliases that most things work right (prefixing with 
linux32), but bash can not handle setting e.g. "./configure" as an alias 
and there is always something I have missed.

So, I came up with a cunning plan...  Create a script /bin/bash32 which 
just runs "linux32 /bin/bash", then add /bin/bash32 to /etc/shells and 
run "chsh -s /bin/bash32".

It works in a way...   when I run uname, it tells me I am using the i686 
kernel.  Success!    Now the bad part... my $PATH gets reduced to:

/home/allan/bin:/bin:/usr/bin

The /home/allan/bin part tells me that my ~/.bashrc is being sourced, as 
does my prompt and all my aliases.   So something else is being 
missed.   The /bin:/usr/bin is the minimum path defined in /etc/login.defs.

All the rest is in /etc/profile and the various /etc/profile.d scripts.  
Why are they not being sourced...   Or are they being sourced and then I 
open up a new shell with my script which gets rid of them?

Allan


More information about the arch-general mailing list