[R-sig-Geo] can't initiate Grass with initGRASS()
Roger Bivand
Roger.Bivand at nhh.no
Sat Aug 28 19:15:51 CEST 2010
On Sat, 28 Aug 2010, William McCoy wrote:
> Roger,
>
> I think your suspicions are correct. Here is the output from debug after the
> PATH setting if():
>
> Browse[2]> Sys.getenv("PATH")
>
>
>
> PATH
> "/usr/local/texlive/2009/bin/i386-linux:/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/wdmccoy/bin:/usr/local/grass-6.4.0svn/bin:/usr/local/grass-6.4.0svn/scripts"
> Browse[2]> list.files(Sys.getenv("PATH"))
> character(0)
> Browse[2]> Sys.getenv("LD_LIBRARY_PATH")
>
>
> LD_LIBRARY_PATH
> "/usr/lib/R/lib:/usr/local/lib:/usr/lib/jvm/jre/lib/i386/server:/usr/lib/jvm/jre/lib/i386:/usr/lib/jvm/java/lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib:/usr/local/grass-6.4.0svn/lib"
> Browse[2]> list.files(Sys.getenv("LD_LIBRARY_PATH"))
> character(0)
>
>
> Since I last used spgrass6 many months ago, I have installed grass64svn along
> with grass63, which was long ago installed as a fedora rpm. So my PATH looks
> like this:
>
>
> [wdmccoy at boreas ~]$ echo $PATH
> /usr/local/texlive/2009/bin/i386-linux:/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/wdmccoy/bin
>
>
> But my LD_LIBRARY_PATH looks like this:
>
> [wdmccoy at boreas ~]$ echo $LD_LIBRARY_PATH
>
>
> I.e., there is nothing in LD_LIBRARY_PATH. The reason grass64 works by
> itself (outside of R) is because I have a grass64.conf file in
> /etc/ld.so.conf.d and that .conf file contains:
>
> /usr/local/grass-6.4.0svn/lib
>
>
> What do you recommend?
This is a bit difficult to say, but trying to set LD_LIBRARY_PATH before
starting R to the correct value:
export LD_LIBRARY_PATH=/usr/local/grass-6.4.0svn/lib
and/or ensuring that ldconfig was run, might help.
Have you tried using gisBase = "/usr/local/grass-6.4.0svn" without the
terminating "/"?
Hope this goes in the right direction,
Roger
>
>
> Thanks, Bill
>
>
> On 08/28/2010 05:41 AM, Roger Bivand wrote:
>> On Fri, 27 Aug 2010, William McCoy wrote:
>>
>>> I am using spgrass6, but I can't seem to initiate a grass session. I
>>> managed to do this correctly months ago, but can't seem to now. Here
>>> is my code and sessionInfo:
>>
>> Something has happened to your GRASS installation and/or the
>> LD_LIBRARY_PATH environment variable. The GRASS binary modules are being
>> found, but the libraries (shared objects) they call are not. Try to set
>> debug(initGRASS), then step through looking at what is in environment
>> variables, etc. After the if () for conditionally setting the PATH, look
>> at:
>>
>> Sys.getenv("PATH")
>> list.files(Sys.getenv("PATH"))
>>
>> and similarly for LD_LIBRARY_PATH:
>>
>> Sys.getenv("LD_LIBRARY_PATH")
>> list.files(Sys.getenv("LD_LIBRARY_PATH"))
>>
>> I suspect that the test:
>>
>> eLDPATH <- Sys.getenv("LD_LIBRARY_PATH")
>> grep(basename(Sys.getenv("GISBASE")), eLDPATH)
>>
>> is not empty, so the LD_LIBRARY_PATH does not get edited to include the
>> actual locations of the *.so files.
>>
>> Have you changed the definitions of these environment variables in a
>> .bashrc or similar between this working and no longer working? Before
>> starting R, say:
>>
>> echo $PATH
>> echo $LD_LIBRARY_PATH
>>
>> to see if that sheds any light on things.
>>
>> Hope this helps,
>>
>> Roger
>>
>>
>>>
>>>> library(spgrass6)
>>> Loading required package: sp
>>> Loading required package: rgdal
>>> Geospatial Data Abstraction Library extensions to R successfully loaded
>>> Loaded GDAL runtime: GDAL 1.7.2, released 2010/04/23
>>> Path to GDAL shared files: /usr/local/share/gdal
>>> Loaded PROJ.4 runtime: Rel. 4.7.1, 23 September 2009
>>> Path to PROJ.4 shared files: (autodetected)
>>> Loading required package: XML
>>> GRASS GIS interface loaded with GRASS version: (GRASS not running)
>>>> loc <- initGRASS(gisBase = "/usr/local/grass-6.4.0svn/", home =
>>>> tempdir())
>>> g.gisenv: symbol lookup error: g.gisenv: undefined symbol: G__no_gisinit
>>> g.gisenv: symbol lookup error: g.gisenv: undefined symbol: G__no_gisinit
>>> g.gisenv: symbol lookup error: g.gisenv: undefined symbol: G__no_gisinit
>>> g.gisenv: symbol lookup error: g.gisenv: undefined symbol: G__no_gisinit
>>> g.gisenv: symbol lookup error: g.gisenv: undefined symbol: G__no_gisinit
>>> g.region: symbol lookup error: g.region: undefined symbol: G__gisinit
>>> Error in if (file.exists(file) == FALSE) if (!missing(asText) &&
>>> asText == :
>>> argument is of length zero
>>> Error in parseGRASS(cmd) : g.region not parsed
>>>
>>>> sessionInfo()
>>> R version 2.11.1 (2010-05-31)
>>> i386-redhat-linux-gnu
>>>
>>> locale:
>>> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
>>> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
>>> [5] LC_MONETARY=C LC_MESSAGES=en_US.UTF-8
>>> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
>>> [9] LC_ADDRESS=C LC_TELEPHONE=C
>>> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>>>
>>> attached base packages:
>>> [1] stats graphics grDevices utils datasets methods base
>>>
>>> other attached packages:
>>> [1] spgrass6_0.6-19 XML_3.1-1 rgdal_0.6-28 sp_0.9-66
>>>
>>> loaded via a namespace (and not attached):
>>> [1] grid_2.11.1 lattice_0.18-8 tools_2.11.1
>>>
>>>
>>> Any ideas about what I am doing wrong?
>>>
>>> Thanks, Bill
>>>
>>>
>>
>
>
>
--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no
More information about the R-sig-Geo
mailing list