[GRASS-dev] what dependencies does GRASS actually need to run?
Michael Barton
michael.barton at asu.edu
Wed Apr 15 13:06:57 EDT 2009
Thanks Moritz,
This is the kind of information I was trying to get at. Trying to get
a feel for what is really necessary to make an installable binary on
Mac and Windows.
Michael
______________________________
C. Michael Barton, Professor of Anthropology
Director of Graduate Studies
School of Human Evolution & Social Change
Center for Social Dynamics & Complexity
Arizona State University
Tempe, AZ 85287-2402
USA
voice: 480-965-6262; fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton
On Apr 15, 2009, at 9:58 AM, Moritz Lennert wrote:
> On 15/04/09 18:40, Michael Barton wrote:
>> On Apr 15, 2009, at 8:40 AM, Moritz Lennert wrote:
>>> On 15/04/09 17:13, Michael Barton wrote:
>>>> It would be useful to know for binary installations which
>>>> dependencies that GRASS actually needs to *run* as a binary
>>>> (i.e., not dependencies needed to compile).
>>>> AFAICT, it must have PROJ and PROJ requires GDAL (though I don't
>>>> think GRASS requires GDAL)
>>>
>>> r.*.gdal, v.*.ogr require GDAL...
>> I thought that GRASS now compiles its own r.out.gdal and r.in.gdal
>> and so doesn't need GDAL for these.
>
> It doesn't need the GDAL binary tools (gdal_translate, etc), but it
> still needs the GDAL libaries which is what r.out.gdal is based on.
>
>> I don't know about v.*.ogr
>
> ditto.
>
>>>
>>>
>>>> Some other dependencies may be for specific I/O
>>>> Anything else it needs just to run if is is already a compiled
>>>> binary?
>>>
>>> Well, that kind of depends on how you compile it, i.e. the
>>> configure statement before compilation.
>> Even if you compile with libtif do you need to have libtif to run?
>> On Windows? On Mac?
>
> You can use libraries in a static or in a dynamic way. If you use
> them statically, then all of the library is compiled into your
> executable, making it easy to install without many dependencies, but
> often making it fairly big, especially since your dependencies might
> depend on something else and so on. And you have to do the same for
> all programs, even if they use the same libaries (e.g. GDAL for
> GRASS, QGIS, etc, etc)
>
> So, generally, the choice is to compile with dynamic libraries,
> meaning that the executable finds the relevant command in the libary
> binary during execution. This allows different programs to share one
> version of the library, which reduces size, but can lead to
> dependency issues, especially if you compile against a different
> version of the library than the one you use for running the program.
>
>>> AFAIK, most libraries used in GRASS (including the system
>>> libraries) are used as dynamic libraries, so you need those. It
>>> also depends on what parts of GRASS you want to use, as, for
>>> example, the gdal example shows. nviz has specific requirements
>>> and so do some other modules.
>>>
>>> As an example, check the required packages for the installation of
>>> the GRASS Debian package:
>>>
>>> http://packages.debian.org/lenny/grass
>>>
>>> Not all of these packages are actually required to run the grass
>>> binary, as long as you don't use all of the modules.
>> This is what I'm asking about. What is a minimal set of
>> dependencies to do most things?
>
> Define "most things" ;-)
>
> You definitely will need libc, I guess proj, don't know about zlib.
> Don't know if you could create a working GRASS installation
> (working, but stripped down in its functionality) with just those...
> If you want some sort of output, you probably need libnpng.
>
> But I'll leave this to the experts. Glynn ?
>
> Moritz
More information about the grass-dev
mailing list