[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