GFOSS.it Live DVD Install

From OSGeo
Jump to navigation Jump to search

Steps for configuring and installing. Based on SIDUX Linux platform. (this note works on Debian too, and everytime you do an upgrade see what you are updating ... because it can break the source installation ;-) )

Update Distribution

If this is a new SIDUX install, you likely need to upgrade a bunch of stuff.

  • exit desktop GUI, shutdown gdm using command:
    • init 3
  • sudo apt-get update
  • sudo apt-get dist-upgrade
  • restart desktop whenever you want:
    • init 5 && exit

Add Main Dependencies

This is all one loooong line

su
apt-get install subversion build-essential python-dev lesstif2 libfftw3-3 libgeos-3.1.0 libgeos-c1 libhdf4g libhdf5-serial-1.6.6-0 libicu40 libmysqlclient15off libnetcdf4  libogdi3.2 libpq5 libproj-dev libproj0 libwxbase2.8-0 libwxgtk2.8-0 libxerces-c28 libxp6 mysql-common odbcinst1debian1 proj-data tk8.5 unixodbc comerr-dev libaudio2  libcurl4-gnutls-dev libgcrypt11-dev libgeos-dev libgif-dev libgnutls-dev libgpg-error-dev libgssrpc4 libhdf4g-dev libhdf5-serial-dev libidn11-dev libjasper-dev libjpeg62-dev  libkadm5srv6 libkdb5-4 libkrb5-dev libldap2-dev libltdl-dev libmysqlclient15-dev libnetcdf-dev libodbcinstq1c2 libpng12-dev libpq-dev libqt3-mt libsqlite3-dev libssl-dev  libtasn1-3-dev libtiff4-dev libtiffxx0c2 libxerces-c2-dev pkg-config unixodbc-dev zlib1g-dev libqt4-core libqt4-dev libqt4-gui libqt4-qt3support libqt4-sql lsb-qt4 qt4-designer  qt4-dev-tools qt4-doc qt4-qtconfig uim-qt gcc libapt-pkg-perl resolvconf libgsl0-dev g++ ccache make flex bison cmake txt2tags python-qt4 python-qt4-dev python-sip4 sip4  python-sip4-dev postgresql-8.3-postgis osm2pgsql phppgadmin libexpat1-dev libspatialite-dev spatialite-bin tk8.5-dev tcl8.5-dev libreadline5-dev libfreetype6-dev libcairo2-dev  ffmpeg libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libswscale-dev libglu1-mesa-dev libgl1-mesa-dev mesa-common-dev libcoin40c2 libgeotiff-dev geotiff-bin  nano cmake-curses-gui libfftw3-dev python-wxgtk2.8 libwxbase2.8-dev libwxgtk2.8-dev python-opengl swig  libxmu-dev libavdevice-dev libxmu-dev libavdevice-dev libgnutls-dev  libqt4-opengl-dev python-pygame python-serial python-psycopg2 python-simplejson python-qwt5-qt4 python-qwt3d-qt4 python-pysqlite2 python-scipy python-matplotlib  python-simpleparse python-qt4-sql r-base-dev python-rpy2 paraview gedit ipython jam doxygen pommed
apt-get clean


Here it is split but only for display purposes:

su
apt-get install subversion build-essential python-dev lesstif2 libfftw3-3 libgeos-3.1.0 \
libgeos-c1 libhdf4g libhdf5-serial-1.6.6-0 libicu40 libmysqlclient15off libnetcdf4 \ 
libogdi3.2 libpq5 libproj-dev libproj0 libwxbase2.8-0 libwxgtk2.8-0 libxerces-c28 \
libxp6 mysql-common odbcinst1debian1 proj-data tk8.5 unixodbc comerr-dev libaudio2 \ 
libcurl4-gnutls-dev libgcrypt11-dev libgeos-dev libgif-dev libgnutls-dev \ 
libgpg-error-dev libgssrpc4 libhdf4g-dev libhdf5-serial-dev libidn11-dev \ 
libjasper-dev libjpeg62-dev libkadm5srv6 libkdb5-4 libkrb5-dev libldap2-dev \ 
libltdl-dev libmysqlclient15-dev libnetcdf-dev libodbcinstq1c2 libpng12-dev \ 
libpq-dev libqt3-mt libsqlite3-dev libssl-dev libtasn1-3-dev libtiff4-dev \ 
libtiffxx0c2 libxerces-c2-dev pkg-config unixodbc-dev zlib1g-dev libqt4-core \ 
libqt4-dev libqt4-gui libqt4-qt3support libqt4-sql lsb-qt4 qt4-designer \ 
qt4-dev-tools qt4-doc qt4-qtconfig uim-qt gcc libapt-pkg-perl resolvconf libgsl0-dev \ 
g++ ccache make flex bison cmake txt2tags python-qt4 python-qt4-dev python-sip4 sip4 \ 
python-sip4-dev postgresql-8.3-postgis osm2pgsql phppgadmin libexpat1-dev libspatialite-dev \ 
spatialite-bin tk8.5-dev tcl8.5-dev libreadline5-dev libfreetype6-dev libcairo2-dev \ 
ffmpeg libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libswscale-dev \ 
libglu1-mesa-dev libgl1-mesa-dev mesa-common-dev libcoin40c2 libgeotiff-dev geotiff-bin \ 
nano cmake-curses-gui libfftw3-dev python-wxgtk2.8 libwxbase2.8-dev libwxgtk2.8-dev python-opengl \ 
swig libxmu-dev libavdevice-dev libxmu-dev libavdevice-dev libgnutls-dev libqt4-opengl-dev \ 
python-pygame python-serial python-psycopg2 python-simplejson python-qwt5-qt4 python-qwt3d-qt4 \ 
python-pysqlite2 python-scipy python-matplotlib python-simpleparse python-qt4-sql r-base-dev \ 
python-rpy2 paraview gedit ipython pommed

The ffmpeg install include files in a non standard place so a symbolic link for each include file is needed :

mkdir /usr/include/ffmpeg
ln -s /usr/include/libavcodec/avcodec.h /usr/include/libavcodec/opt.h /usr/include/libavcodec/vdpau.h /usr/include/libavcodec/xvmc.h /usr/include/libavdevice/avdevice.h /usr/include/libavfilter/avfilter.h /usr/include/libavformat/avformat.h /usr/include/libavformat/avio.h /usr/include/libavutil/adler32.h /usr/include/libavutil/avstring.h /usr/include/libavutil/avutil.h /usr/include/libavutil/base64.h /usr/include/libavutil/common.h /usr/include/libavutil/crc.h /usr/include/libavutil/fifo.h /usr/include/libavutil/intfloat_readwrite.h /usr/include/libavutil/log.h /usr/include/libavutil/lzo.h /usr/include/libavutil/mathematics.h /usr/include/libavutil/md5.h /usr/include/libavutil/mem.h /usr/include/libavutil/pixfmt.h /usr/include/libavutil/random.h /usr/include/libavutil/rational.h /usr/include/libavutil/sha1.h /usr/include/libswscale/swscale.h /usr/include/ffmpeg/

to have linked the libraries in /usr/local/lib and the files we'll install from source, we need to add configuration files in /etc/ld.so.conf.d/ , so in a terminal :

su
touch /etc/ld.so.conf.d/local.conf
echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf
touch /etc/ld.so.conf.d/grass.conf
echo "/usr/local/grass-7.0.svn/lib" >> /etc/ld.so.conf.d/grass.conf
ldconfig
exit

Checkout GFOSS Apps

Downloading the code from SVN repositories for GRASS, GDAL/OGR, QGIS, OpenSceneGraph (to support OssimPlanet), OSSIM

GDAL/OGR

cd /usr/local/src
svn checkout https://svn.osgeo.org/gdal/trunk/gdal gdal 
cd gdal
./configure --with-python --with-geos=/usr/bin/geos-config --with-libtiff=internal --with-mysql --with-ogdi
make
su
make install
exit


GRASS GIS

You can chose to build *one of* the 6.5-devel versions or the latest dev-release 7.0. (adapt the file: "etc/ld.so.conf.d/grass.conf" to match your grass version - [7.0] : /usr/local/grass-7.0.svn/lib - [6.5]: /usr/local/grass-6.5.svn/lib )

- version : 6.5

svn checkout https://svn.osgeo.org/grass/grass/branches/develbranch_6 grass6_devel 
./configure --with-tcltk-includes=/usr/include/tcl8.5/ --with-freetype-includes=/usr/include/freetype2/ --with-cxx --enable-64bit --with-geos --with-ffmpeg --with-mysql --with-postgres --with-postgres-includes=/usr/include/postgresql/ --with-mysql-includes=/usr/include/mysql/ --with-ffmpeg-includes=/usr/include/ffmpeg/ --with-odbc --with-python --with-sqlite --with-wxwidgets=/usr/bin/wx-config --with-readline --enable-largefile --with-proj-share=/usr/share/proj
make
su
make install
exit


- version : 7.0

cd /usr/local/src 
svn checkout https://svn.osgeo.org/grass/grass/trunk grass_trunk 
./configure --with-tcltk-includes=/usr/include/tcl8.5/ --with-freetype-includes=/usr/include/freetype2/ --with-cxx --enable-64bit --with-geos --with-ffmpeg --with-mysql --with-postgres --with-postgres-includes=/usr/include/postgresql/ --with-mysql-includes=/usr/include/mysql/ --with-ffmpeg-includes=/usr/include/ffmpeg/ --with-odbc --with-python --with-sqlite --with-wxwidgets=/usr/bin/wx-config --with-pthread --with-readline --enable-largefile
make
su
make install
exit

GDAL-GRASS Plug-In

cd /usr/local/src/gdal/frmts/grass
make dist
# this will generate a tar.gz file contains the gdal-grass plug-in, untar it somewhere
# cd in and configure it using :
./configure --with-gdal=/usr/local/bin/gdal-config --with-grass=/usr/local/grass-7.0.svn/ # (check the version match)
make
su
make install
exit

QGIS

cd /usr/local/src
svn co https://svn.osgeo.org/qgis/trunk/qgis qgis
cd qgis
mkdir build
cd build
ccmake ..
# this command will open a text gui
# its usage is simple : 
# - up/down arrow key to navigate the configurable options
# - enter key  to modify an option
# - c key to configure
# - g key to generate makefile
#
# changes the following var : 
# 
###
#
# BINDINGS_GLOBAL_INSTALL          ON
#
# CMAKE_BUILD_TYPE                 Debug
#
# GRASS_PREFIX                     /usr/local/grass-7.0.svn  
#
# PEDANTIC                         ON
#
###
# press "c" to configure
# press "g" to generate makefile
make
su
make install
exit
  1. note : recently qgis has changed build system for grass-plug-in
  2. it search the Q-Grass modules in a directory named :
  3. mudules-6.4 / -6.3 , just copy : /usr/local/src/qgis/src/plugins/grass/modules-6.4 to
  4. /usr/local/src/qgis/src/plugins/grass/modules-6.5
  5. or modules-7.0 (based on the installed grass-version)
  6. ... and test it, feedback to the qgis/grass lists is welcome

OpenSceneGraph

cd /usr/local/src
svn co http://www.openscenegraph.org/svn/osg/OpenSceneGraph/tags/OpenSceneGraph-2.8.2 OpenSceneGraph
cd OpenSceneGraph
mkdir build
cd build
ccmake ..
# press "c"
# press "g"
make
su 
make install
exit


GPS Toolkit "GPSTK"

cd /usr/local/src
svn checkout https://gpstk.svn.sourceforge.net/svnroot/gpstk 
cd gpstk/dev/
jam
doxygen
su
jam install
exit

OSSIM

First set some environmental variables needed for the build :

cd
echo "export OSSIM_DEV_HOME=/usr/local/src/ossim" >> .bashrc
echo "export OSSIM_HOME=/usr/local/src/ossim/ossim" >> .bashrc
echo "export OSSIM_QT_HOME=/usr/local/src/ossim/ossim_qt" >> .bashrc
echo "export OSSIM_LIB_DIR=/usr/local/src/ossim/ossim/lib/ossim" >> .bashrc
echo "export OSSIM_INC_DIR=/usr/local/src/ossim/ossim/include" >> .bashrc

Download the source code :

cd /usr/local/src/
mkdir ossim
cd ossim
svn co http://svn.osgeo.org/ossim/trunk .

Install Ossim Core libraries :

cd ossim
./configure
make
su
make install
exit

Install libwms :

cd ../libwms
make
su
make install
exit

Install OssimPredator :

cd ../ossimPredator
mkdir lib
cd src
# add :  OSSIM_HOME=/usr/local/src/ossim/ossim  in the GNUmakefile then :
OSSIM_HOME=/usr/local/src/ossim/ossim/
export OSSIM_HOME
OSSIM_DEV_HOME=/usr/local/src/ossim/
export OSSIM_DEV_HOME
make
su
make install
exit

Install Ossim_Qt4 :

cd /usr/local/src/ossim/ossim_qt4
qmake ossim_qt4.pro
make
su
make install
exit

Install OssimPlanet :

cd /usr/local/src/ossim/ossimPlanet
make
su
make install
exit

Install OssimPlanetQt :

cd ../ossimPlanetQt
qmake ossimPlanetQt.pro
make
su
make install
exit

Install ossim_plugins :

cd /usr/local/src/ossim_plugins
nano make_opt.in
# uncommend the GDAL_HOME varible to : 
#
GDAL_HOME=/usr/local
#
# ctr+x to save and exit from nano editor
make make_options
make
cd ossim
make
cd ../png
make
cd ../contrib
make
cd ../registration
make
cd ../ossim
make


Now ready to setup an ossim preference directory where we can store some local data :

cd
mkdir .ossim
cp -r $OSSIM_DEV_HOME/ossim_package_support/fonts .ossim/fonts
cp -r $OSSIM_DEV_HOME/ossim_package_support/geoids .ossim/geoids
cp -r $OSSIM_DEV_HOME/ossim_package_support/images .ossim/images
cp -r $OSSIM_DEV_HOME/ossim_plugins/lib .ossim/plugins


Create a file called "ossim_preference" : Ossim_Preference is a file like :

plugin.file1: /usr/local/src/ossim/ossim_plugins/lib/libossimreg_plugin.so 
plugin.file2: /usr/local/src/ossim/ossim_plugins/lib/libossimgdal_plugin.so
plugin.file3: /usr/local/src/ossim/ossim_plugins/lib/libossimcontrib_plugin.so
plugin.file4: /usr/local/src/ossim/ossim_plugins/lib/libossim_plugin.so
plugin.file5: /usr/local/src/ossim/ossim_plugins/lib/libossimpng_plugin.so

export it :

OSSIM_PREFS_FILE=/path/to/ossim_preference
export OSSIM_PREFS_FILE

The rest to come...