[GRASS5] grass directory structure and locations

Hopefully I am on the right mail list, if not then please point me elsewhere.

A little background on my distro. Running a source based distro called
Lunar-Linux ( http://www.lunar-linux.org/ ) and I am creating some install
modules for grass, postgis and qgis. They all install fine but I have noticed
one thing.

One of the abilities of Lunar-Linux is to perform integrity checks on
installed items. These checks consist of discovering missing binary
executable, libraries and header files, modified binaries and libraries,
misowned symlinks to files and broken executable and libraries.

When I run these checks gqis fails sanity checks because the grass libs seem
to be in a non-standard location. At least that is how it appears to me. In
my limited experience an apps libs usually go in /usr/lib or /lib.

And I see that the grass install essentially creates it's own tree under /usr.
One thing I have not done yet is to add /usr/grass to ld.so.conf. Which I'm
sure would take of the failed sanity checks. But I am curious as to why grass
does not use the "normal" directory locations of Unix/UNIX/Linux.

Any enlightenment is greatly appreciated.

Hello Dennis,

On Tue, 16 Aug 2005 06:28:01 -0400 Dennis Veatch <dveatch@woh.rr.com>
wrote:

Hopefully I am on the right mail list, if not then please point me
elsewhere.

A little background on my distro. Running a source based distro
called Lunar-Linux ( http://www.lunar-linux.org/ ) and I am creating
some install modules for grass, postgis and qgis. They all install
fine but I have noticed one thing.

One of the abilities of Lunar-Linux is to perform integrity checks on
installed items. These checks consist of discovering missing binary
executable, libraries and header files, modified binaries and
libraries, misowned symlinks to files and broken executable and
libraries.

When I run these checks gqis fails sanity checks because the grass
libs seem to be in a non-standard location. At least that is how it
appears to me. In my limited experience an apps libs usually go
in /usr/lib or /lib.

And I see that the grass install essentially creates it's own tree
under /usr. One thing I have not done yet is to add /usr/grass to
ld.so.conf. Which I'm sure would take of the failed sanity checks.
But I am curious as to why grass does not use the "normal" directory
locations of Unix/UNIX/Linux.

Any enlightenment is greatly appreciated.

Just a clue: You can safeley erase GRASS from your computer with
deleting /usr/grass/* and you are done.

just my 0.02¢
--
GDF Hannover - Solutions for spatial data analysis and remote sensing
Hannover Office - Mengendamm 16d - D-30177 Hannover
Internet: www.gdf-hannover.de - Email: holl@gdf-hannover.de
Phone : ++49-(0)511.39088507 - Fax: ++49-(0)511.39088508

On Tuesday 16 August 2005 06:37 am, Stephan Holl wrote:

Hello Dennis,

On Tue, 16 Aug 2005 06:28:01 -0400 Dennis Veatch <dveatch@woh.rr.com>

wrote:
> Hopefully I am on the right mail list, if not then please point me
> elsewhere.
>
> A little background on my distro. Running a source based distro
> called Lunar-Linux ( http://www.lunar-linux.org/ ) and I am creating
> some install modules for grass, postgis and qgis. They all install
> fine but I have noticed one thing.
>
> One of the abilities of Lunar-Linux is to perform integrity checks on
> installed items. These checks consist of discovering missing binary
> executable, libraries and header files, modified binaries and
> libraries, misowned symlinks to files and broken executable and
> libraries.
>
> When I run these checks gqis fails sanity checks because the grass
> libs seem to be in a non-standard location. At least that is how it
> appears to me. In my limited experience an apps libs usually go
> in /usr/lib or /lib.
>
> And I see that the grass install essentially creates it's own tree
> under /usr. One thing I have not done yet is to add /usr/grass to
> ld.so.conf. Which I'm sure would take of the failed sanity checks.
> But I am curious as to why grass does not use the "normal" directory
> locations of Unix/UNIX/Linux.
>
> Any enlightenment is greatly appreciated.

Just a clue: You can safeley erase GRASS from your computer with
deleting /usr/grass/* and you are done.

just my 0.02¢

That's a fine 0.02¢ but sarcasm doesn't really answer my question. It was not
my intent to complain or criticize. If that is how it comes across, I offer
my apologies. I was only seeking understanding.

If your response is truly how such questions are treated perhaps I will
consider your proposal. However, I do have more respect for the developers of
grass than to just toss it into the bit bucket as you suggest. In the mean
time I will wait for someone to respond with something more constructive.

On Tuesday 16 August 2005 07:47 am, Stephan Holl wrote:

Hello Dennis,

On Tue, 16 Aug 2005 06:51:03 -0400 Dennis Veatch <dveatch@woh.rr.com>

wrote:
> That's a fine 0.02_ but sarcasm doesn't really answer my question. It
> was not my intent to complain or criticize. If that is how it comes
> across, I offer my apologies. I was only seeking understanding.
>
> If your response is truly how such questions are treated perhaps I
> will consider your proposal. However, I do have more respect for the
> developers of grass than to just toss it into the bit bucket as you
> suggest. In the mean time I will wait for someone to respond with
> something more constructive.

my appologies for my former post. I was not meant to be constructive,
because I have asked this kind of question for myself as well and did
not find a satisfying answer.

I did not toss this into the bit bucket... perhaps I did not think
enough before typing :frowning:

Sorry for the that.
Best
  Stephan

PS: I will watch the thread closely since I am interested in this as
well!

Ah, I see now. I totally missed your point. No problem.

Apparently I did not look hard enough through the archives for this subject.
Would you happen to have a link or what the subject name was?

Dennis Veatch wrote:

Hopefully I am on the right mail list, if not then please point me elsewhere.

A little background on my distro. Running a source based distro called
Lunar-Linux ( http://www.lunar-linux.org/ ) and I am creating some install
modules for grass, postgis and qgis. They all install fine but I have noticed
one thing.

One of the abilities of Lunar-Linux is to perform integrity checks on
installed items. These checks consist of discovering missing binary
executable, libraries and header files, modified binaries and libraries,
misowned symlinks to files and broken executable and libraries.

When I run these checks gqis fails sanity checks because the grass libs seem
to be in a non-standard location. At least that is how it appears to me. In
my limited experience an apps libs usually go in /usr/lib or /lib.

And I see that the grass install essentially creates it's own tree under /usr.
One thing I have not done yet is to add /usr/grass to ld.so.conf. Which I'm
sure would take of the failed sanity checks. But I am curious as to why grass
does not use the "normal" directory locations of Unix/UNIX/Linux.

Simplicity.

The whole of GRASS goes into its own directory, with the exception of
the "grass61" (or similar) script used to start GRASS, which goes into
a standard location.

Nothing in GRASS (again, except for the startup script) hardcodes the
installation path, but uses the environment variable GISBASE (which is
set in the startup script). The startup process sets PATH,
LD_LIBRARY_PATH etc to include the appropriate subdirectories of the
GRASS installation tree.

If you want to move or rename the GRASS installation directory, you
only need to update the startup script accordingly. Also, as Stephan
mentioned, if you want to uninstall GRASS, you only need to delete the
GRASS directory and the startup script. If it installed into system
directories, uninstalling would be difficult.

The GRASS build system installs everything into a local directory
within the source tree, from where you can run the newly-compiled
version without having to install it. Running "make install" simply
copies the entire directory to the installed location and installs a
copy of the startup script which references the installed location.

All in all, this makes it easy to keep multiple versions of GRASS
around and to try new versions without any chance of affecting an
existing installation.

BTW, the default location is under /usr/local; you have to explicitly
use --prefix=/usr to get it installed under /usr. Given that it
doesn't install into the standard locations but to its own directory
hierarchy, I prefer "--prefix=/opt --bindir=/usr/local/bin" so that
GRASS goes into /opt/grass-<version>. /opt is the historical location
for packages which use their own self-contained hierarchy.

--
Glynn Clements <glynn@gclements.plus.com>

On Tuesday 16 August 2005 02:40 pm, you wrote:

Dennis Veatch wrote:
> Hopefully I am on the right mail list, if not then please point me
> elsewhere.
>
> A little background on my distro. Running a source based distro called
> Lunar-Linux ( http://www.lunar-linux.org/ ) and I am creating some
> install modules for grass, postgis and qgis. They all install fine but I
> have noticed one thing.
>
> One of the abilities of Lunar-Linux is to perform integrity checks on
> installed items. These checks consist of discovering missing binary
> executable, libraries and header files, modified binaries and libraries,
> misowned symlinks to files and broken executable and libraries.
>
> When I run these checks gqis fails sanity checks because the grass libs
> seem to be in a non-standard location. At least that is how it appears to
> me. In my limited experience an apps libs usually go in /usr/lib or /lib.
>
> And I see that the grass install essentially creates it's own tree under
> /usr. One thing I have not done yet is to add /usr/grass to ld.so.conf.
> Which I'm sure would take of the failed sanity checks. But I am curious
> as to why grass does not use the "normal" directory locations of
> Unix/UNIX/Linux.

Simplicity.

The whole of GRASS goes into its own directory, with the exception of
the "grass61" (or similar) script used to start GRASS, which goes into
a standard location.

Nothing in GRASS (again, except for the startup script) hardcodes the
installation path, but uses the environment variable GISBASE (which is
set in the startup script). The startup process sets PATH,
LD_LIBRARY_PATH etc to include the appropriate subdirectories of the
GRASS installation tree.

If you want to move or rename the GRASS installation directory, you
only need to update the startup script accordingly. Also, as Stephan
mentioned, if you want to uninstall GRASS, you only need to delete the
GRASS directory and the startup script. If it installed into system
directories, uninstalling would be difficult.

Alright I can live with that, not that I couldn't to begin with.

The GRASS build system installs everything into a local directory
within the source tree, from where you can run the newly-compiled
version without having to install it. Running "make install" simply
copies the entire directory to the installed location and installs a
copy of the startup script which references the installed location.

All in all, this makes it easy to keep multiple versions of GRASS
around and to try new versions without any chance of affecting an
existing installation.

That certainly is sensible and convenient.

BTW, the default location is under /usr/local; you have to explicitly
use --prefix=/usr to get it installed under /usr. Given that it
doesn't install into the standard locations but to its own directory
hierarchy, I prefer "--prefix=/opt --bindir=/usr/local/bin" so that
GRASS goes into /opt/grass-<version>. /opt is the historical location
for packages which use their own self-contained hierarchy.

Hmm, hadn't thought about /opt. Good point. I think I'll run with the /opt
thing. And yes I did set my build script with "--prefix=/usr" as most apps I
have run across live there, so it was somewhat of a habit.

Thanks for the informative reply..... and now back to the regularly scheduled
program.