Erinevus lehekülje "OSM kaardiserver Mandriva 2010 Spring baasil" redaktsioonide vahel

Allikas: Pingviini viki
P
17. rida: 17. rida:
 
Kui puhas install on tehtud tuleb paigaldada postgresql andmebaas ja postgre postgis -i laiendus.
 
Kui puhas install on tehtud tuleb paigaldada postgresql andmebaas ja postgre postgis -i laiendus.
  
  urpmi postgresql8.4, postgresql8.4-contrib, postgis
+
  urpmi postgresql8.4, postgresql8.4-contrib, postgis, subversion, task-c++-devel
  
 
Peale postgre paigaldamist tuleks see ka käivitada, mille jooksul luuakse default andmebaasid ja configuratsiooni fail.
 
Peale postgre paigaldamist tuleks see ka käivitada, mille jooksul luuakse default andmebaasid ja configuratsiooni fail.
152. rida: 152. rida:
 
  CREATE OPERATOR CLASS
 
  CREATE OPERATOR CLASS
 
  [postgres@andres ~]$
 
  [postgres@andres ~]$
 +
 +
== osm2pgsql ==
 +
Kui andmebaas on paigaldatud ja seadistatud tuleb andmed baasi importida. Selleks tuleb kasutada programmi nimega '''osm2pgsql'''.
 +
* svn co http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/
 +
 +
[andres@xxx ~]$ svn co http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/
 +
A    osm2pgsql/Makefile.in
 +
A    osm2pgsql/debian
 +
A    osm2pgsql/debian/control
 +
...
 +
A    osm2pgsql/README.txt
 +
A    osm2pgsql/pgsql.h
 +
A    osm2pgsql/output-gazetteer.h
 +
Checked out revision 22342.
 +
[andres@xxx ~]$
 +
 +
Kompileerime osm2pgsql -i
 +
* cd osm2pgsql
 +
* ./autogen.sh
 +
* ./configure
 +
* make
 +
* make install
 +
 +
[andres@xxx ] cd osm2pgsql/
 +
[andres@xxx osm2pgsql]$ ./autogen.sh
 +
[andres@xxx osm2pgsql]$ ./configure
 +
checking for gcc... gcc
 +
checking whether the C compiler works... yes
 +
checking for C compiler default output file name... a.out
 +
...
 +
configure: creating ./config.status
 +
config.status: creating Makefile
 +
config.status: creating config.h
 +
[andres@xxx osm2pgsql]$ make
 +
gcc  -g -O2 -Wall -Wextra -I/usr/include/libxml2 -I/usr/include -I/usr/include -DVERSION=\"0.69-22342\" -DHAVE_PTHREAD - DOSM2PGSQL_DATADIR=\"/usr/local/share/osm2pgsql\"  -c -o expire-tiles.o expire-tiles.c
 +
...
 +
gcc  -g -O2 -Wall -Wextra -I/usr/include/libxml2 -I/usr/include -I/usr/include -DVERSION=\"0.69-22342\" -DHAVE_PTHREAD - DOSM2PGSQL_DATADIR=\"/usr/local/share/osm2pgsql\"  -c -o UTF8sanitizer.o UTF8sanitizer.c
 +
g++    -c -o build_geometry.o build_geometry.cpp
 +
gcc  -o osm2pgsql expire-tiles.o input.o keyvals.o middle-pgsql.o middle-ram.o osm2pgsql.o output-gazetteer.o output-null.o output-pgsql.o pgsql.o rb.o reprojection.o sprompt.o text-tree.o UTF8sanitizer.o build_geometry.o -g -O2 -Wall -Wextra - I/usr/include/libxml2 -I/usr/include -I/usr/include -DVERSION=\"0.69-22342\" -DHAVE_PTHREAD - DOSM2PGSQL_DATADIR=\"/usr/local/share/osm2pgsql\" -lxml2 -lz -lm  -L/usr/lib64 -lgeos -L/usr/lib64 -lpq -lbz2 -lz -g -lproj -lstdc++ -lpthread
 +
[andres@xxx osm2pgsql]$ su
 +
[root@xxx osm2pgsql]# make install
 +
mkdir -p /usr/local/bin
 +
install -m 0755 osm2pgsql /usr/local/bin
 +
mkdir -p /usr/local/share/osm2pgsql
 +
install -m 0644 default.style /usr/local/share/osm2pgsql
 +
[root@andres osm2pgsql]#

Redaktsioon: 16. juuli 2010, kell 12:09


Riistvaralised nõuded

Riistvara serveri jaoks sõltub sellest, kui suurt osa kaardist tahetakse serveerima hakata. Ainult Eesti kaardi näitamiseks piisab 4G rammi ja 200G ketta pinda ja üks kõik milline tänapäevane protsessor.

Euroopa kaardi näitamiseks on 4G mälu kindel miinimum ja väga tugev soovitus on kasutada 8G ketta pinda peaks olema 300-400G ja protsessoril vähemalt 4 tuuma.

Maailma kaardi puhul 16G miinimum 24G soovituslik

Mandriva paigaldus

Soovitav paigaldada mandriva Free versioon mandriva-linux-one-2010-spring-KDE4-europe2-cdrom-i586.iso

Täpsemat kirjeldust Mandriva paigaldamise kohta saab siit Installing_Mandriva_Linux

Postgre piagaldus ja seadistamine

Kui puhas install on tehtud tuleb paigaldada postgresql andmebaas ja postgre postgis -i laiendus.

urpmi postgresql8.4, postgresql8.4-contrib, postgis, subversion, task-c++-devel

Peale postgre paigaldamist tuleks see ka käivitada, mille jooksul luuakse default andmebaasid ja configuratsiooni fail. Mandriva 2010.1 postgre install miskipärast teeb default template andmebaasid ASCII vormingus, mille tulemusena ei saa nende pealt luua UTF8 vormingus baase.

[postgres@xxx ~]$ psql 
psql (8.4.4)
Type "help" for help.
postgres=# \l
                             List of databases
  Name    |  Owner   | Encoding  | Collation | Ctype |   Access privileges   
-----------+----------+-----------+-----------+-------+-----------------------
postgres  | postgres | SQL_ASCII | C         | C     | 
template0 | postgres | SQL_ASCII | C         | C     | =c/postgres
                                                     : postgres=CTc/postgres
template1 | postgres | SQL_ASCII | C         | C     | =c/postgres
                                                     : postgres=CTc/postgres
(3 rows)
postgres=#

Et seda probleemi parandada, tuleb olemasolevad template0 ja template1 baasi ära kustutada

[postgres@andres ~]$ rm -rf /var/lib/pgsql/data

... ja uued genereerida UTF8 vormingus

[postgres@andres ~]$ initdb -E=UTF8
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
...
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.
Success. You can now start the database server using:
   postgres -D /var/lib/pgsql/data
or
   pg_ctl -D /var/lib/pgsql/data -l logfile start
[postgres@andres ~]$psql 
psql (8.4.4)
Type "help" for help.
postgres=# \l
                             List of databases
  Name    |  Owner   | Encoding | Collation | Ctype |   Access privileges   
-----------+----------+----------+-----------+-------+-----------------------
postgres  | postgres | UTF8     | C         | C     | 
template0 | postgres | UTF8     | C         | C     | =c/postgres
                                                    : postgres=CTc/postgres
template1 | postgres | UTF8     | C         | C     | =c/postgres
                                                    : postgres=CTc/postgres
(3 rows)
postgres=#

Kui postgres on paigaldatud siis tuleks natukene postgre ja kerneli näitajaid muuta, et andmebaas paremini töötaks.

Muuda /var/lib/pgsql/data/postgresql.conf faili

shared_buffers = 256MB
checkpoint_segments = 20
maintenance_work_mem = 256MB
autovacuum = off

Muuda /etc/sysctl.conf

kernel.shmmax = 268435456

Nüüd tuleks postgre -le restart teha

/etc/init.d/postgresql restart

ja kerneli parameetrid uuesti sisse lugeda

sysctl -p

Järgmiseks loome baasi, kasutaja ja plpgsql keele

  • createuser mapnik
  • createdb -E UTF8 -O mapnik gis
  • createlang plpgsql gis
[root@xxx]# su - postgres        
[postgres@xxx ~]$ createuser mapnik
Shall the new role be a superuser? (y/n) y
[postgres@xxx ~]$ createdb -E UTF8 -O mapnik gis
[postgres@xxx ~]$ createlang plpgsql gis
[postgres@xxx ~]$

Seadistame ära postgis -i. Lisame postgre -le postgisi laiendused:

  • psql -d gis -f /usr/share/postgresql/contrib/postgis-1.5/postgis.sql
[postgres@andres ~]$ psql -d gis -f /usr/share/postgresql/contrib/postgis-1.5/postgis.sql
SET
BEGIN
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE TYPE
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
...
DROP FUNCTION
DROP FUNCTION
DROP FUNCTION
[postgres@andres ~]$

Anname teatud tabelitele kasutaja mapnik õigused:

  • ALTER TABLE geometry_columns OWNER TO mapnik;
  • ALTER TABLE spatial_ref_sys OWNER TO mapnik;
[postgres@andres ~]$ psql -d gis
psql (8.4.4)
Type "help" for help.
gis=# ALTER TABLE geometry_columns OWNER TO mapnik;
ALTER TABLE
gis=# ALTER TABLE spatial_ref_sys OWNER TO mapnik;
ALTER TABLE
gis=# \q
[postgres@andres ~]$

Käivitame veel ühe sql faili baasis

  • psql -d gis -f /usr/share/postgresql/8.3/contrib/_int.sql
[postgres@andres ~]$ psql -d gis -f /usr/share/postgresql/contrib/_int.sql               
SET
psql:/usr/share/postgresql/contrib/_int.sql:14: NOTICE:  type "query_int" is not yet defined
DETAIL:  Creating a shell type definition.
CREATE FUNCTION
psql:/usr/share/postgresql/contrib/_int.sql:19: NOTICE:  argument type query_int is only a shell
CREATE FUNCTION
CREATE TYPE
CREATE FUNCTION
...
CREATE FUNCTION
CREATE OPERATOR CLASS
[postgres@andres ~]$

osm2pgsql

Kui andmebaas on paigaldatud ja seadistatud tuleb andmed baasi importida. Selleks tuleb kasutada programmi nimega osm2pgsql.

[andres@xxx ~]$ svn co http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/
A    osm2pgsql/Makefile.in
A    osm2pgsql/debian
A    osm2pgsql/debian/control
...
A    osm2pgsql/README.txt
A    osm2pgsql/pgsql.h
A    osm2pgsql/output-gazetteer.h
Checked out revision 22342.
[andres@xxx ~]$

Kompileerime osm2pgsql -i

  • cd osm2pgsql
  • ./autogen.sh
  • ./configure
  • make
  • make install
[andres@xxx ] cd osm2pgsql/
[andres@xxx osm2pgsql]$ ./autogen.sh 
[andres@xxx osm2pgsql]$ ./configure 
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
[andres@xxx osm2pgsql]$ make
gcc  -g -O2 -Wall -Wextra -I/usr/include/libxml2 -I/usr/include -I/usr/include -DVERSION=\"0.69-22342\" -DHAVE_PTHREAD - DOSM2PGSQL_DATADIR=\"/usr/local/share/osm2pgsql\"   -c -o expire-tiles.o expire-tiles.c
...
gcc  -g -O2 -Wall -Wextra -I/usr/include/libxml2 -I/usr/include -I/usr/include -DVERSION=\"0.69-22342\" -DHAVE_PTHREAD - DOSM2PGSQL_DATADIR=\"/usr/local/share/osm2pgsql\"   -c -o UTF8sanitizer.o UTF8sanitizer.c
g++    -c -o build_geometry.o build_geometry.cpp
gcc  -o osm2pgsql expire-tiles.o input.o keyvals.o middle-pgsql.o middle-ram.o osm2pgsql.o output-gazetteer.o output-null.o output-pgsql.o pgsql.o rb.o reprojection.o sprompt.o text-tree.o UTF8sanitizer.o build_geometry.o -g -O2 -Wall -Wextra - I/usr/include/libxml2 -I/usr/include -I/usr/include -DVERSION=\"0.69-22342\" -DHAVE_PTHREAD - DOSM2PGSQL_DATADIR=\"/usr/local/share/osm2pgsql\" -lxml2 -lz -lm  -L/usr/lib64 -lgeos -L/usr/lib64 -lpq -lbz2 -lz -g -lproj -lstdc++ -lpthread
[andres@xxx osm2pgsql]$ su
[root@xxx osm2pgsql]# make install
mkdir -p /usr/local/bin
install -m 0755 osm2pgsql /usr/local/bin
mkdir -p /usr/local/share/osm2pgsql
install -m 0644 default.style /usr/local/share/osm2pgsql
[root@andres osm2pgsql]#