Nikos Alexandris wrote:
> > Is there a way to lock-out all
> > > other versions of grass-modules from being detectable when I am already
> > > inside a grass70 session?
Glynn Clements wrote:
> > The grassXY scripts prepend the GRASS directories to PATH,
> > LD_LIBRARY_PATH, etc. They won't remove any entries which are already
> > there.
> >
> > I only use the grassXY scripts if I actually need to test the startup
> > process. To switch versions, I use the following script:
>
> I get the following error:
> --%<---
> /geo/osgeo/src/grass6_devel/dist.x86_64-unknown-linux-gnu/etc/prompt.sh:
> 2: g.gisenv: not found
> So I did some modifications (see below). Sorry for the noob questions
> (and editing).
> --> here I added "unset IFS": wrong, right or not required?
Glynn Clements wrote:
Not required; the IFS setting is with a subshell, for this reason.
> > )
> > }
> >
> > PATH=`strippath $PATH`
> I changed that to:
> PATH="$GISBASE/bin:$GISBASE/scripts:`strippath $PATH`"
Wait until after $GISBASE has been set.
> > export GISBASE=$PWD/dist.i686-pc-linux-gnu
> -(a)-> changed the 2nd part to "dist.x86_64-unknown-linux-gnu"
Right; that would explain the "g.gisenv: not found" errors.
Actually the error insists and _only_ after I've used the above "PATH"
setting it went away... (?).
The piece of info that I did not provide and makes perhaps the
difference is that I use grass64 as default (see below). I could
describe all of the details if wanted, but I guess you are probably busy
with more important stuff.
These
scripts were constructed for personal use, so they reflect my system.
> -(b)-> I don't understand the logic behind "$PWD" here. From within a
> grass65 or grass70 session why need to re-define $GISBASE? It's already
> set.
The scripts exist to change the "active" version of GRASS. I set all
of the environment variables from a ~/.bashrc.grass file which is
sourced by my ~/.bash_profile file, so GRASS commands work everywhere.
The environment variables are initially set to use 7.0-svn.
Well, I've used your instructions in order to have grass64 set as
default (e.g.:
- in ~/.bashrc I have:
-- code ---
# ~/.bash_profile
if [ -f ~/.bash_profile ] ; then
. ~/.bash_profile
fi
-- end of code ---
- in ~/.bash_profile I have (after your instructions, 2nd post, current
thread):
-- code ---
export GISBASE=/usr/local/grass-6.4.0svn
# and all of the of the other grass-Variables
[...]
export GRASS_VERSION="6.4.0svn"
[...]
-- end of code ---
Maybe this explains it better.
But each version of GRASS which I have checked out has a copy of the
scripts. "source"ing the script will cause that particular version of
GRASS to become "active", i.e. $GISBASE, $PATH, $LD_LIBRARY_PATH and
$PYTHONPATH will all refer to the copy of GRASS in $PWD/dist.i686-pc-linux-gnu.
I think I understand the concept and I adjusted it to my needs correctly
(don't see any errors and checking the paths I get what I expect to
see). I'll stick with this configuration as it's very flexible.
Nevertheless, whenever I'll _work_ on a project I'll prefer a
grass-session (to have a per-session history) or when I want to use
grass6_devel/grass70, again I'll use a session and source the strippath
function.
Thank you Glynn,
Nikos