个人工具

“UbuntuHelp:BuildingQuantumGisPoint7FromSource”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
(新页面: {{From|https://help.ubuntu.com/community/BuildingQuantumGisPoint7FromSource}} {{Languages|UbuntuHelp:BuildingQuantumGisPoint7FromSource}} == Introduction == These instructions are spec...)
 
 
(未显示同一用户的8个中间版本)
第1行: 第1行:
 
{{From|https://help.ubuntu.com/community/BuildingQuantumGisPoint7FromSource}}
 
{{From|https://help.ubuntu.com/community/BuildingQuantumGisPoint7FromSource}}
 
{{Languages|UbuntuHelp:BuildingQuantumGisPoint7FromSource}}
 
{{Languages|UbuntuHelp:BuildingQuantumGisPoint7FromSource}}
 
 
 
== Introduction ==
 
== Introduction ==
 
+
These instructions are specific to QGIS 7.x and below. Developers and users who wish to compile newer versions of QGIS please go to the front page at [[UbuntuHelp:BuildingQuantumGisFromSource|BuildingQuantumGisFromSource]] .  
These instructions are specific to QGIS 7.x and below. Developers and users who wish to compile newer versions of QGIS please go to the front page at BuildingQuantumGisFromSource .  
+
 
+
 
== QGIS Specific Requirements ==
 
== QGIS Specific Requirements ==
 
 
 
Need to be running breezy...
 
Need to be running breezy...
 
 
The packages qgis depends on to build are available in the "universe" component of Ubuntu. This is not activated by default, so you need to activate it:
 
The packages qgis depends on to build are available in the "universe" component of Ubuntu. This is not activated by default, so you need to activate it:
 
+
<ol><li>Edit your /etc/apt/sources.list file.
** Edit your /etc/apt/sources.list file.
+
</li><li>Uncomment the all the lines starting with "deb"</li></ol>
** Uncomment the all the lines starting with "deb"
+
  
 
Now update your local sources database:
 
Now update your local sources database:
 
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo apt-get update
 
sudo apt-get update
 
</nowiki></pre>
 
</nowiki></pre>
 
 
== Install package dependencies. ==
 
== Install package dependencies. ==
 
 
Even if you dont plan to code using kdevelop, its worth installing first because it will make sure you have the dependencies for a useable c++ compilation environment. Not all these packages are strictly needed for QGIS to build, but I find them convenient to have. If you are short on disk space or bandwidth, you may wish to be a little more selective. If you are unsure, just install them all, they cant cause any harm.
 
Even if you dont plan to code using kdevelop, its worth installing first because it will make sure you have the dependencies for a useable c++ compilation environment. Not all these packages are strictly needed for QGIS to build, but I find them convenient to have. If you are short on disk space or bandwidth, you may wish to be a little more selective. If you are unsure, just install them all, they cant cause any harm.
 
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo apt-get install kdevelop3 autoconf2.13 autobook autoconf-archive gnu-standards libqt3-mt-dev qt3-doc kdbg libarts1-dev kdelibs4-doc htdig doxygen kdoc sgmltools-lite linuxdoc-tools a2ps gv qt3-designer qt3-dev-tools kbabel graphviz c-cpp-reference g++ libtool flex bison automake1.8 checkinstall ccache libtool proj sqlite3 libsqlite3-dev libsqlite3-0 gsl-bin libgsl0 libgsl0-dev cvs
 
sudo apt-get install kdevelop3 autoconf2.13 autobook autoconf-archive gnu-standards libqt3-mt-dev qt3-doc kdbg libarts1-dev kdelibs4-doc htdig doxygen kdoc sgmltools-lite linuxdoc-tools a2ps gv qt3-designer qt3-dev-tools kbabel graphviz c-cpp-reference g++ libtool flex bison automake1.8 checkinstall ccache libtool proj sqlite3 libsqlite3-dev libsqlite3-0 gsl-bin libgsl0 libgsl0-dev cvs
 
</nowiki></pre>
 
</nowiki></pre>
 
 
/!\ '''Note:''' This will prompt to install a whole heap of additional packages....go ahead its ok.
 
/!\ '''Note:''' This will prompt to install a whole heap of additional packages....go ahead its ok.
 
 
Now you can install all the packages qgis requires to build:
 
Now you can install all the packages qgis requires to build:
 
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo apt-get build-dep qgis
 
sudo apt-get build-dep qgis
 
</nowiki></pre>
 
</nowiki></pre>
 
 
== Setup ccache (optional) ==
 
== Setup ccache (optional) ==
 
 
You should also setup ccache to speed up compile times:
 
You should also setup ccache to speed up compile times:
 
 
<pre><nowiki>
 
<pre><nowiki>
 
cd /usr/local/bin
 
cd /usr/local/bin
第48行: 第30行:
 
sudo ln -s /usr/bin/ccache g++
 
sudo ln -s /usr/bin/ccache g++
 
</nowiki></pre>
 
</nowiki></pre>
 
 
== Make sure the correct version of automake is being used ==
 
== Make sure the correct version of automake is being used ==
 
 
/!\ NOTE: If you installed kdevelop using the step above, ubuntu will have installed automake-1.4. This causes a problem when running the autogen.sh command below as it picks up the wrong copy of aclocal and automake. To circumvent this while still keeping both installed on your system do the following:
 
/!\ NOTE: If you installed kdevelop using the step above, ubuntu will have installed automake-1.4. This causes a problem when running the autogen.sh command below as it picks up the wrong copy of aclocal and automake. To circumvent this while still keeping both installed on your system do the following:
 
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo update-alternatives --config automake
 
sudo update-alternatives --config automake
 
</nowiki></pre>
 
</nowiki></pre>
 
 
Which will present you with something like:
 
Which will present you with something like:
 
<pre><nowiki>
 
<pre><nowiki>
 
There are 4 alternatives which provide `automake'.
 
There are 4 alternatives which provide `automake'.
  
Selection    Alternative
+
  Selection    Alternative
 
-----------------------------------------------
 
-----------------------------------------------
1        /usr/bin/automake-1.6
+
      1        /usr/bin/automake-1.6
2        /usr/bin/automake-1.8
+
      2        /usr/bin/automake-1.8
 
*+    3        /usr/bin/automake-1.4
 
*+    3        /usr/bin/automake-1.4
4        /usr/bin/automake-1.9
+
      4        /usr/bin/automake-1.9
  
 
Press enter to keep the default[*], or type selection number: 2
 
Press enter to keep the default[*], or type selection number: 2
 
Using `/usr/bin/automake-1.8' to provide `automake'.
 
Using `/usr/bin/automake-1.8' to provide `automake'.
 
</nowiki></pre>
 
</nowiki></pre>
 
 
== GRASS Specific Steps ==
 
== GRASS Specific Steps ==
 
 
=== Install GRASS ===
 
=== Install GRASS ===
 
 
/!\ If you don't need to build with GRASS support,  you can skip this section.
 
/!\ If you don't need to build with GRASS support,  you can skip this section.
 
 
Now you can install grass from breezy:
 
Now you can install grass from breezy:
 
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo apt-get install grass libgrass-dev  
 
sudo apt-get install grass libgrass-dev  
 
</nowiki></pre>
 
</nowiki></pre>
 
 
=== Install GRASS raster driver for gdal ===
 
=== Install GRASS raster driver for gdal ===
 
 
The apt package for this is currently not in ubuntu repositories. Here is one way to install it :
 
The apt package for this is currently not in ubuntu repositories. Here is one way to install it :
 
 
<pre><nowiki>
 
<pre><nowiki>
 
cd /tmp
 
cd /tmp
第93行: 第63行:
 
sudo dpkg -i libgdal1-grass_1.2.6-1+b1_i386.deb
 
sudo dpkg -i libgdal1-grass_1.2.6-1+b1_i386.deb
 
</nowiki></pre>
 
</nowiki></pre>
 
 
 
== Starting the compile ==
 
== Starting the compile ==
 
 
 
The qt files are not in the expected place, so you need to tell configure where to look for them. Or you can <code><nowiki>export QTDIR=/usr/share/qt3</nowiki></code>.
 
The qt files are not in the expected place, so you need to tell configure where to look for them. Or you can <code><nowiki>export QTDIR=/usr/share/qt3</nowiki></code>.
 
 
 
Now you can proceed to the initial configure step:
 
Now you can proceed to the initial configure step:
 
 
<pre><nowiki>
 
<pre><nowiki>
 
./autogen.sh --enable-debug --prefix=/usr --with-qtdir=/usr/share/qt3 --with-grass=/usr/lib/grass
 
./autogen.sh --enable-debug --prefix=/usr --with-qtdir=/usr/share/qt3 --with-grass=/usr/lib/grass
 
</nowiki></pre>
 
</nowiki></pre>
 
 
At the end of the autogen / configure process above you should see output like below, indicating that qgis is going to be built with all its bells & whistles...
 
At the end of the autogen / configure process above you should see output like below, indicating that qgis is going to be built with all its bells & whistles...
 
 
<pre><nowiki>
 
<pre><nowiki>
 
==========================================
 
==========================================
第132行: 第93行:
 
Configure finished, type 'make' to build.
 
Configure finished, type 'make' to build.
 
</nowiki></pre>
 
</nowiki></pre>
 
 
Now we go on to the compilation step. I like to time the build so I can get an idea of how long it takes in general. THe first time you build will take substantially longer as ccache will not receive many hits. Subsequent builds should be much faster!
 
Now we go on to the compilation step. I like to time the build so I can get an idea of how long it takes in general. THe first time you build will take substantially longer as ccache will not receive many hits. Subsequent builds should be much faster!
 
 
<pre><nowiki>
 
<pre><nowiki>
 
echo `date` > /tmp/qgis_compile.txt ; make ; echo `date` >> /tmp/qgis_compile.txt
 
echo `date` > /tmp/qgis_compile.txt ; make ; echo `date` >> /tmp/qgis_compile.txt
 
</nowiki></pre>
 
</nowiki></pre>
 
 
Now install as a package for easy removal later:
 
Now install as a package for easy removal later:
 
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo ./doCheckInstall.sh
 
sudo ./doCheckInstall.sh
 
</nowiki></pre>
 
</nowiki></pre>
 
 
Using doCheckinstall.sh will do the equivalent of make install, but it will also make a debian package of QGIS, making it easy to compile on one machine and install on many...
 
Using doCheckinstall.sh will do the equivalent of make install, but it will also make a debian package of QGIS, making it easy to compile on one machine and install on many...
 
 
== Installing PostGIS to set up a GeoDatabase ==
 
== Installing PostGIS to set up a GeoDatabase ==
 
 
/!\ '''Note''' this is not the most efficient way, just the way that I ended up doing it:
 
/!\ '''Note''' this is not the most efficient way, just the way that I ended up doing it:
 
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo apt-get update
 
sudo apt-get update
 
sudo apt-get install postgresql-8.0
 
sudo apt-get install postgresql-8.0
 
</nowiki></pre>
 
</nowiki></pre>
 
 
Add the following two lines to your /etc/apt/sources.list:
 
Add the following two lines to your /etc/apt/sources.list:
 
 
<pre><nowiki>
 
<pre><nowiki>
 
deb http://www.orcaware.com/packages/ubuntu/ breezy/
 
deb http://www.orcaware.com/packages/ubuntu/ breezy/
 
deb-src http://www.orcaware.com/packages/ubuntu/ breezy/
 
deb-src http://www.orcaware.com/packages/ubuntu/ breezy/
 
</nowiki></pre>
 
</nowiki></pre>
 
 
Now install the postgis packages:
 
Now install the postgis packages:
 
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo apt-get update
 
sudo apt-get update
 
sudo apt-get install postgresql-postgis-8.1 libpostgis1-pg8.1 libpostgis-common libpostgis-doc libpostgis-java libpostgis-utils-pg8.1 libpostgis1-examples libgeos2c2a
 
sudo apt-get install postgresql-postgis-8.1 libpostgis1-pg8.1 libpostgis-common libpostgis-doc libpostgis-java libpostgis-utils-pg8.1 libpostgis1-examples libgeos2c2a
 
</nowiki></pre>
 
</nowiki></pre>
 
 
=== Setting up a simple GeoDatabase ===
 
=== Setting up a simple GeoDatabase ===
 
 
/!\ '''Disclaimer:''' These instructions are not to be considered a full security solution. They are probably ok for a desktop user who runs their own pc behind a firewall, but they are no substitute for a proper secure multiuser deployment of QGIS!!! Use at your own risk!
 
/!\ '''Disclaimer:''' These instructions are not to be considered a full security solution. They are probably ok for a desktop user who runs their own pc behind a firewall, but they are no substitute for a proper secure multiuser deployment of QGIS!!! Use at your own risk!
 
 
/!\ '''Note:''' There are many ways to set up a database, this is not neccessarily the best, but it works for me.
 
/!\ '''Note:''' There are many ways to set up a database, this is not neccessarily the best, but it works for me.
 
+
/!\ '''Note:''' These notes rely on features found in [[UbuntuHelp:PostgreSQL|PostgreSQL]] 8.1. Using an older version will require modification of this procedure.
/!\ '''Note:''' These notes rely on features found in PostgreSQL 8.1. Using an older version will require modification of this procedure.
+
 
+
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo su - postgres
 
sudo su - postgres
 
createuser -s -d -r -l -i -P -E
 
createuser -s -d -r -l -i -P -E
 
</nowiki></pre>
 
</nowiki></pre>
 
 
You will be prompted to answer some simple questions:
 
You will be prompted to answer some simple questions:
 
<pre><nowiki>
 
<pre><nowiki>
第190行: 第133行:
 
CREATE ROLE
 
CREATE ROLE
 
</nowiki></pre>
 
</nowiki></pre>
 
 
Now exit the postgres user (you should never need to use that account again as your new account has full admin rights over the database).
 
Now exit the postgres user (you should never need to use that account again as your new account has full admin rights over the database).
 
 
<pre><nowiki>
 
<pre><nowiki>
 
exit
 
exit
 
</nowiki></pre>
 
</nowiki></pre>
 
 
Now you should be back at your normal user account and you can create your first database:
 
Now you should be back at your normal user account and you can create your first database:
 
 
<pre><nowiki>
 
<pre><nowiki>
 
createdb -E UNICODE gis
 
createdb -E UNICODE gis
 
</nowiki></pre>
 
</nowiki></pre>
 
 
You can verify your new database exists by using psql -l e.g.:
 
You can verify your new database exists by using psql -l e.g.:
 
 
<pre><nowiki>
 
<pre><nowiki>
  
 
psql -l
 
psql -l
List of databases
+
        List of databases
Name    |  Owner  | Encoding
+
  Name    |  Owner  | Encoding
 
-----------+----------+----------
 
-----------+----------+----------
gis      | foouser  | UTF8          <-- thats our new db we just created
+
gis      | foouser  | UTF8          <-- thats our new db we just created
postgres  | postgres | LATIN1
+
postgres  | postgres | LATIN1
template0 | postgres | LATIN1
+
template0 | postgres | LATIN1
template1 | postgres | LATIN1
+
template1 | postgres | LATIN1
 
(4 rows)
 
(4 rows)
  
  
 
</nowiki></pre>
 
</nowiki></pre>
 
 
Now we need to install the PostGIS functions and so on into our new database:
 
Now we need to install the PostGIS functions and so on into our new database:
 
 
/!\ To be added
 
/!\ To be added
 
<pre><nowiki>
 
<pre><nowiki>
第227行: 第162行:
 
</nowiki></pre>
 
</nowiki></pre>
 
----
 
----
[[category:CategoryDocumentation]]
 
  
 
[[category:UbuntuHelp]]
 
[[category:UbuntuHelp]]

2010年5月19日 (三) 21:47的最新版本

Introduction

These instructions are specific to QGIS 7.x and below. Developers and users who wish to compile newer versions of QGIS please go to the front page at BuildingQuantumGisFromSource .

QGIS Specific Requirements

Need to be running breezy... The packages qgis depends on to build are available in the "universe" component of Ubuntu. This is not activated by default, so you need to activate it:

  1. Edit your /etc/apt/sources.list file.
  2. Uncomment the all the lines starting with "deb"

Now update your local sources database:

sudo apt-get update

Install package dependencies.

Even if you dont plan to code using kdevelop, its worth installing first because it will make sure you have the dependencies for a useable c++ compilation environment. Not all these packages are strictly needed for QGIS to build, but I find them convenient to have. If you are short on disk space or bandwidth, you may wish to be a little more selective. If you are unsure, just install them all, they cant cause any harm.

sudo apt-get install kdevelop3 autoconf2.13 autobook autoconf-archive gnu-standards libqt3-mt-dev qt3-doc kdbg libarts1-dev kdelibs4-doc htdig doxygen kdoc sgmltools-lite linuxdoc-tools a2ps gv qt3-designer qt3-dev-tools kbabel graphviz c-cpp-reference g++ libtool flex bison automake1.8 checkinstall ccache libtool proj sqlite3 libsqlite3-dev libsqlite3-0 gsl-bin libgsl0 libgsl0-dev cvs

/!\ Note: This will prompt to install a whole heap of additional packages....go ahead its ok. Now you can install all the packages qgis requires to build:

sudo apt-get build-dep qgis

Setup ccache (optional)

You should also setup ccache to speed up compile times:

cd /usr/local/bin
sudo ln -s /usr/bin/ccache gcc
sudo ln -s /usr/bin/ccache g++

Make sure the correct version of automake is being used

/!\ NOTE: If you installed kdevelop using the step above, ubuntu will have installed automake-1.4. This causes a problem when running the autogen.sh command below as it picks up the wrong copy of aclocal and automake. To circumvent this while still keeping both installed on your system do the following:

sudo update-alternatives --config automake

Which will present you with something like:

There are 4 alternatives which provide `automake'.

  Selection    Alternative
-----------------------------------------------
      1        /usr/bin/automake-1.6
      2        /usr/bin/automake-1.8
*+    3        /usr/bin/automake-1.4
      4        /usr/bin/automake-1.9

Press enter to keep the default[*], or type selection number: 2
Using `/usr/bin/automake-1.8' to provide `automake'.

GRASS Specific Steps

Install GRASS

/!\ If you don't need to build with GRASS support, you can skip this section. Now you can install grass from breezy:

sudo apt-get install grass libgrass-dev 

Install GRASS raster driver for gdal

The apt package for this is currently not in ubuntu repositories. Here is one way to install it :

cd /tmp
wget http://ftp.uk.debian.org/debian/pool/main/libg/libgdal-grass/libgdal1-grass_1.2.6-1+b1_i386.deb
sudo dpkg -i libgdal1-grass_1.2.6-1+b1_i386.deb

Starting the compile

The qt files are not in the expected place, so you need to tell configure where to look for them. Or you can export QTDIR=/usr/share/qt3. Now you can proceed to the initial configure step:

./autogen.sh --enable-debug --prefix=/usr --with-qtdir=/usr/share/qt3 --with-grass=/usr/lib/grass

At the end of the autogen / configure process above you should see output like below, indicating that qgis is going to be built with all its bells & whistles...

==========================================
qgis 0.6.0devel22
------------------------------------------
GDAL/OGR      : yes (Version 1.2.6)
GEOS          : yes (Version 2.0.1)
PostgreSQL    : yes (Version 7.4.7)
GRASS         : yes <-- may be no if you skipped grass step above!
SPIT          : yes
Georeferencer : yes
GPS/GPX       : yes
PROJ4         : yes
SQLITE3       : yes

Debug         : yes
Plugin dir    : ${exec_prefix}/lib/qgis

The binary will be installed in /usr/bin

The build is using Qt in /usr/share/qt3
------------------------------------------
Configure finished, type 'make' to build.

Now we go on to the compilation step. I like to time the build so I can get an idea of how long it takes in general. THe first time you build will take substantially longer as ccache will not receive many hits. Subsequent builds should be much faster!

echo `date` > /tmp/qgis_compile.txt ; make ; echo `date` >> /tmp/qgis_compile.txt

Now install as a package for easy removal later:

sudo ./doCheckInstall.sh

Using doCheckinstall.sh will do the equivalent of make install, but it will also make a debian package of QGIS, making it easy to compile on one machine and install on many...

Installing PostGIS to set up a GeoDatabase

/!\ Note this is not the most efficient way, just the way that I ended up doing it:

sudo apt-get update
sudo apt-get install postgresql-8.0

Add the following two lines to your /etc/apt/sources.list:

deb http://www.orcaware.com/packages/ubuntu/ breezy/
deb-src http://www.orcaware.com/packages/ubuntu/ breezy/

Now install the postgis packages:

sudo apt-get update
sudo apt-get install postgresql-postgis-8.1 libpostgis1-pg8.1 libpostgis-common libpostgis-doc libpostgis-java libpostgis-utils-pg8.1 libpostgis1-examples libgeos2c2a

Setting up a simple GeoDatabase

/!\ Disclaimer: These instructions are not to be considered a full security solution. They are probably ok for a desktop user who runs their own pc behind a firewall, but they are no substitute for a proper secure multiuser deployment of QGIS!!! Use at your own risk! /!\ Note: There are many ways to set up a database, this is not neccessarily the best, but it works for me. /!\ Note: These notes rely on features found in PostgreSQL 8.1. Using an older version will require modification of this procedure.

sudo su - postgres
createuser -s -d -r -l -i -P -E

You will be prompted to answer some simple questions:

Enter name of role to add: foouser    <-- use your normal user acct name here!
Enter password for new role:
Enter it again:
CREATE ROLE

Now exit the postgres user (you should never need to use that account again as your new account has full admin rights over the database).

exit

Now you should be back at your normal user account and you can create your first database:

createdb -E UNICODE gis

You can verify your new database exists by using psql -l e.g.:


psql -l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+----------
 gis       | foouser  | UTF8          <-- thats our new db we just created
 postgres  | postgres | LATIN1
 template0 | postgres | LATIN1
 template1 | postgres | LATIN1
(4 rows)


Now we need to install the PostGIS functions and so on into our new database: /!\ To be added