Installation instructions for GRASS on MS-Windows with Cygwin (winGRASS)
- Program installation
- Installing data
- Setting up an icon on the Desktop
- Troubleshooting
- Manually installing packages
- Reporting bugs
Prerequisites:
This UNIX oriented GRASS 6.4 for Windows version requires the Free
Cygwin UNIX compatibility software
(alternatively, there is also a native WinGRASS package available).
Installation
Part 1: Cygwin installation:
- Go to http://cygwin.com and download setup.exe.
Note down the path where you saved it, we'll need it later!
- Run setup.exe:
- Select "Install from Internet"
- Select "Root install Directory": go ahead with default settings ("Next"). However, it is recommended to install
Cygwin under a directory whose name doesn't contain spaces or tabs.
- Select "Local Package Directory": any directory is fine with sufficient disk space. Here the downloaded
packages will be cached.
- Select "Your Internet Connection": direct or proxy as appropriate
- Select a mirror site close-by. It will fetch the list of packages.
- Select packages: In addition to the core requirements several packages are quite useful and
some GRASS modules won't work without them (Click on "Skip" to toggle the selection of a package):
- bc - command line calculator ('Utils' section)
- file - determines file types ('Utils' section)
- A good text editor, such as nedit, which can translate between
DOS and UNIX end-of-line text formats is also handy to have around ('Editors' section)
- fvwm - windows manager ('X11' section)
- netpbm - image format conversions ('Graphics' section)
- unzip - decompress file archives ('Archive' section)
- util-linux - provides "more", nice for g.list ('Utils' section)
- wget - command line WWW download utility ('Web' section)
- After selection of these extra packages continue with "Next". It will take a
while to download all Cygwin packages and install them...
Part 2: GRASS GIS installation:
- Create a shortcut to the previously saved Cygwin "setup.exe" (see above)
- Since we cannot offer a signature file (setup.ini.sig), you need to add a workaround:
Edit the shortcut Properties (in right-mouse-button menu) and add " -X"
(without quotes) as parameter to "setup.exe". The -X permits to run an own setup.ini based installation.
Example:
Change "C:\Documents and Settings\user\Documenti\Download\setup.exe"
to "C:\Documents and Settings\user\Documenti\Download\setup.exe" -X
- Rename the shortcut name to "Cygwin-Setup" (you may want to move it to the Desktop)
- Run this "Cygwin-Setup" program again in order to fetch Cygwin updates (if available) and install GRASS GIS:
- The installation dialogue will appear; accept the default settings and continue with "Next" (5 times)
unless you reach the "Choose A Download Site" dialog.
- As "User URL", add http://grass.osgeo.org/grass64/binary/mswindows/cygwin/ and click on
the "Add" button. This will prepare the installation of the GRASS GIS package.
- In the "Select Packages" dialog proceed with "Next" in order to download and install the GRASS GIS package
and Cygwin updates as available.
To start GRASS, double-click on the Cygwin icon and run "startx"
(or "startxwin.sh")
at the command prompt. This will start X-Windows and open a new xterm window.
At the xterm prompt type "grass64 -tcltk".
To start GRASS from an icon on the Desktop, see below.
In case of problems see the troubleshooting section
below.
Installing data:
Create a new directory in your Cygwin home directory called
"grassdata/" for your data.
For example, using the
Spearfish sample dataset:
(assumes you have already downloaded the dataset and put the file in
your Cygwin home directory [aka "~" or c:\cygwin\home\$USER\])
$ cd ~
$ mkdir grassdata/
$ cd grassdata/
$ tar xzf ~/spearfish_grass60data-0.3.tar.gz
Then start GRASS using /home/$USER/grassdata/ as your GIS data
directory.
Starting Cygwin GRASS from an icon on the desktop:
copy c:\cygwin\cygwin.bat to c:\cygwin\cygwin_grass.bat
edit c:\cygwin\cygwin_grass.bat so it looks like this:
(add "set GRASS_AUTOSTART=1" and "-c startx")
@echo off
C:
chdir C:\cygwin\bin
set GRASS_AUTOSTART=1
bash --login -i -c startx
Next in your cygwin home dir add this to the end of ~/.bashrc :
#################
# Start GRASS
if [ -n "$DISPLAY" ] && [ -n "$GRASS_AUTOSTART" ] ; then
unset GRASS_AUTOSTART
exec grass64
fi
#################
Finally make a shortcut from cygwin_grass.bat to the Desktop.
Download the GRASS icon and select it by right-clicking on the desktop
shortcut and in "Preferences" click on Change Icon and Browse.
done!
Troubleshooting:
If some modules mysteriously fail there are a few things you can do to help
diagnose the problem. If the GUI fails (for example with a "child process
exited abnormally" error) your first check should be the region settings
module. Try typing "g.region -p" at the command line and make sure
you get reasonable values for north, south, east, west and resolution.
If a module returns you to the command prompt with no activity at all,
try typing "echo $?" immediately after to query the module's exit
code. If that says "53" you are most likely missing a library (DLL). To find
out which one run "cygcheck g.region" (replace g.region with the
offending module's name). You can then search for the name of the package
that contains the missing file at the
Cygwin package search page. Re-run the Cygwin installer to load the
missing package; it will have remembered your earlier selections.
Feel free to file a bug report as well (see below).
If the GRASS mapset selection startup screen doesn't load at all, you can
attempt to bypass it by giving the path to the mapset directly on the command
line. For example:
grass64 grassdata/spearfish60/user1
From outside of GRASS you can run cygcheck to check for missing
DLL libraries by first changing to GRASS's library directory:
cd /usr/local/grass-6.4.2/lib
cygcheck ../bin/g.region
Installing packages by hand:
(only required if you didn't install via a GRASS mirror (with "setup.ini")
from within the Cygwin installer)
The winGRASS package is just a .tar.bz2 file. It can be extracted into Cygwin's
root directory (or use setup.ini as explained in above
external notes),
e.g.:
$ cd /
$ tar xjf /path/to/grass-6.4.2-1.cygwin.tar.bz2
Everything will be /usr/local/grass-6.4.2, except for the grass64
script which is in /usr/local/bin.
Regarding external dependencies: the only dependencies which aren't
provided by Cygwin are GDAL and Tcl/Tk. They can be downloaded
above and they have to be extracted into Cygwin's root directory
as well (or use setup.ini as explained in above
external notes).
Please help us and report bugs:
Bug report form