Pages: 1
- Sujet précédent - [postgis] erreur installation "le type geometry n'existe pas" - Sujet suivant
#1 Sat 23 April 2011 09:26
- kirua
- Juste Inscrit !
- Date d'inscription: 23 Apr 2011
- Messages: 1
[postgis] erreur installation "le type geometry n'existe pas"
Bonjour a tous ceci est mon premier poste sur le forum alors je vais en profiter pour me présenter, je suis étudiant en informatique au cnam et j'habite dans le sud de la france, en ce moment nous étudions les base de données géographique mais il se trouve que j'ai quelque problème avec l'installation de postgis sous ubuntu 10.04.
Voila mon probleme :
j'ai creer une base de donnée (create db
je lui ai installer le langage (createlang)
et pour ces deux commandes j'ai des erreurs :
psql -d postgis -f /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql
psql -d my_db -f /usr/share/postgresql/8.4/contrib/postgis-1.5/spatial_ref_sys.sql
pour la premiere j'ai l'erreur qui me dit que le type geometry n'existe pas et que tous les transactions ont été annulées.
J'ai bien modifié le fichier ld.so.conf en y ajoutant /usr/lib et /usr/local/lib et /usr/lib/postgis/postgresql/8.4/contrib/lib/
J'ai désinstaller plusieurs fois puis réinstaller mais rien n'y fais.
Merci d'avance de votre aide.
Hors ligne
#2 Sat 23 April 2011 16:07
Re: [postgis] erreur installation "le type geometry n'existe pas"
Bonjour,
Je n'ai jamais rencontré un problème similaire au votre mais normalement, vous créez votre base et vous chargez les deux fichiers dans la base créée. Dans votre cas, je suis surpris que vos deux lignes ne concernent déjà pas la même base.
Vous pouvez également vous référer à ce guide http://georezo.net/wiki/main/logiciels/postgis/start pour faire votre installation (bien qu'imparfait)
Cordialement
ThomasG
Hors ligne
#3 Thu 19 May 2011 09:24
- Amelie_D
- Participant occasionnel
- Date d'inscription: 13 Apr 2011
- Messages: 15
Re: [postgis] erreur installation "le type geometry n'existe pas"
Bonjour,
je rencontre le même problème, sous Ubuntu 11.04.
J'ai installé PostGres, qui a l'air de fonctionner correctement...
et pour installer PostGis, j'ai suivi la démarche expliquée ici :
http://georezo.net/wiki/main/logiciels/postgis/start
J'ai donc entré :
Code:
sudo apt-get install build-essential automake autoconf m4 autotools-dev sudo apt-get install postgresql-8.4 libpq-dev postgresql-server-dev-8.4 libxml2 libxml2-dev sudo apt-get install proj libproj-dev sudo apt-get --purge libgeos-3.1.0
Les paquets s'installent, tout va bien.
Code:
psql create database geobd; create language plpgsql
Le "createlang -dgeodb plpgsql" n'est pas une commande reconnue,
non plus que "createlang geodb plpgsql", donc le langage est mis en place (je suppose) pour toutes les db ?
Code:
psql -d geodb -f /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql;
Et là retour :
Code:
psql:/usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql:7741: ERREUR: la transaction est annulée, les commandes sont ignorées jusqu'à la fin du bloc psql:/usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql:7785: ERREUR: le type « geometry » n'existe pas
Le fichier /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql existe bien.
Je n'ai trouvé de problème similaire qu'ici, aucune autre info sur le net (après avoir consulté
http://forum.ubuntu-fr.org/viewtopic.php?id=387347
http://www.paolocorti.net/2008/01/30/in … on-ubuntu/
http://geomatique.georezo.net/forum/vie … pid=190376)
Est-ce que quelqu'un voit ce que j'ai loupé ?
Hors ligne
#4 Thu 19 May 2011 09:49
- cyrille
- Participant assidu
- Date d'inscription: 7 Feb 2006
- Messages: 401
Re: [postgis] erreur installation "le type geometry n'existe pas"
@Amelie_D
lorsque tu lances psql tu passes sous l'editeur sql et donc tu as affaire à une console sql.
il faut que tu restes dans le bash
donc pas la peine de lancer psql
ne pas oublier le:
Code:
psql -d my_db -f /....../spatial_ref_sys.sql
Hors ligne
#5 Thu 19 May 2011 09:54
- Amelie_D
- Participant occasionnel
- Date d'inscription: 13 Apr 2011
- Messages: 15
Re: [postgis] erreur installation "le type geometry n'existe pas"
Oui excuse, j'ai oublié de préciser que après avoir créé la BD et le language je me déconnecte (\q).
Et pour le spatial_ref_system.sql, j'ai lu là http://forum.ubuntu-fr.org/viewtopic.php?id=387347 que :
"pour info avec la version postgresql-8.4-postgis les 2 scripts a passer (lwpostgis.sql et ref_spatialxxxx.sql)
ont été remplacés par le script postgis.sql situé dans /usr/share/postgresql/8.4/contrib/"
Donc normalement il n'a plus qu'un seul script.
Hors ligne
#6 Thu 19 May 2011 15:55
- cyrille
- Participant assidu
- Date d'inscription: 7 Feb 2006
- Messages: 401
Re: [postgis] erreur installation "le type geometry n'existe pas"
et avec un
Code:
sudo ldconfig
?
Dernière modification par cyrille (Thu 19 May 2011 15:56)
Hors ligne
#7 Thu 19 May 2011 16:59
- Amelie_D
- Participant occasionnel
- Date d'inscription: 13 Apr 2011
- Messages: 15
Re: [postgis] erreur installation "le type geometry n'existe pas"
Ca ne change rien...
Je viens de réinstaller tout PostGres, en suivant ça http://www.davidgis.fr/documentation/wi … index.html,
mais j'aboutis toujours au méme problème : le type "geometry" n'existe pas.
Dans le script /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql je trouve ça au paragraphe "geometry" :
-------------------------------------------------------------------
-- GEOMETRY TYPE (lwgeom)
-------------------------------------------------------------------
-- Deprecation in 1.5.0
CREATE OR REPLACE FUNCTION st_geometry_in(cstring)
RETURNS geometry
AS '$libdir/postgis-1.5','LWGEOM_in'
LANGUAGE 'C' IMMUTABLE STRICT;
-- Deprecation in 1.5.0
CREATE OR REPLACE FUNCTION st_geometry_out(geometry)
RETURNS cstring
AS '$libdir/postgis-1.5','LWGEOM_out'
LANGUAGE 'C' IMMUTABLE STRICT;
-- Deprecation in 1.5.0
CREATE OR REPLACE FUNCTION st_geometry_analyze(internal)
RETURNS bool
AS '$libdir/postgis-1.5', 'LWGEOM_analyze'
LANGUAGE 'C' VOLATILE STRICT;
-- Deprecation in 1.5.0
CREATE OR REPLACE FUNCTION st_geometry_recv(internal)
RETURNS geometry
AS '$libdir/postgis-1.5','LWGEOM_recv'
LANGUAGE 'C' IMMUTABLE STRICT;
-- Deprecation in 1.5.0
CREATE OR REPLACE FUNCTION st_geometry_send(geometry)
RETURNS bytea
AS '$libdir/postgis-1.5','LWGEOM_send'
LANGUAGE 'C' IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION geometry_in(cstring)
RETURNS geometry
AS '$libdir/postgis-1.5','LWGEOM_in'
LANGUAGE 'C' IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION geometry_out(geometry)
RETURNS cstring
AS '$libdir/postgis-1.5','LWGEOM_out'
LANGUAGE 'C' IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION geometry_analyze(internal)
RETURNS bool
AS '$libdir/postgis-1.5', 'LWGEOM_analyze'
LANGUAGE 'C' VOLATILE STRICT;
CREATE OR REPLACE FUNCTION geometry_recv(internal)
RETURNS geometry
AS '$libdir/postgis-1.5','LWGEOM_recv'
LANGUAGE 'C' IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION geometry_send(geometry)
RETURNS bytea
AS '$libdir/postgis-1.5','LWGEOM_send'
LANGUAGE 'C' IMMUTABLE STRICT;
CREATE TYPE geometry (
internallength = variable,
input = geometry_in,
output = geometry_out,
send = geometry_send,
receive = geometry_recv,
delimiter = ':',
analyze = geometry_analyze,
storage = main
);
Et ensuite, à la fin du script, cela :
-- First drop old aggregates
DROP AGGREGATE IF EXISTS geomunion(geometry);
DROP AGGREGATE IF EXISTS st_geomunion(geometry);
DROP AGGREGATE IF EXISTS accum_old(geometry);
DROP AGGREGATE IF EXISTS st_accum_old(geometry);
-- Then drop old functions
DROP FUNCTION IF EXISTS box2d_overleft(box2d, box2d);
DROP FUNCTION IF EXISTS box2d_overright(box2d, box2d);
DROP FUNCTION IF EXISTS box2d_left(box2d, box2d);
DROP FUNCTION IF EXISTS box2d_right(box2d, box2d);
DROP FUNCTION IF EXISTS box2d_contain(box2d, box2d);
DROP FUNCTION IF EXISTS box2d_contained(box2d, box2d);
DROP FUNCTION IF EXISTS box2d_overlap(box2d, box2d);
DROP FUNCTION IF EXISTS box2d_same(box2d, box2d);
DROP FUNCTION IF EXISTS box2d_intersects(box2d, box2d);
DROP FUNCTION IF EXISTS st_box2d_overleft(box2d, box2d);
DROP FUNCTION IF EXISTS st_box2d_overright(box2d, box2d);
DROP FUNCTION IF EXISTS st_box2d_left(box2d, box2d);
DROP FUNCTION IF EXISTS st_box2d_right(box2d, box2d);
DROP FUNCTION IF EXISTS st_box2d_contain(box2d, box2d);
DROP FUNCTION IF EXISTS st_box2d_contained(box2d, box2d);
DROP FUNCTION IF EXISTS st_box2d_overlap(box2d, box2d);
DROP FUNCTION IF EXISTS st_box2d_same(box2d, box2d);
DROP FUNCTION IF EXISTS st_box2d_intersects(box2d, box2d);
DROP FUNCTION IF EXISTS st_addbbox(geometry);
DROP FUNCTION IF EXISTS st_dropbbox(geometry);
DROP FUNCTION IF EXISTS st_hasbbox(geometry);
DROP FUNCTION IF EXISTS cache_bbox();
DROP FUNCTION IF EXISTS st_cache_bbox();
DROP FUNCTION IF EXISTS transform_geometry(geometry,text,text,int);
DROP FUNCTION IF EXISTS collector(geometry, geometry);
DROP FUNCTION IF EXISTS st_collector(geometry, geometry);
DROP FUNCTION IF EXISTS geom_accum (geometry[],geometry);
DROP FUNCTION IF EXISTS st_geom_accum (geometry[],geometry);
DROP FUNCTION IF EXISTS collect_garray (geometry[]);
DROP FUNCTION IF EXISTS st_collect_garray (geometry[]);
DROP FUNCTION IF EXISTS geosnoop(geometry);
DROP FUNCTION IF EXISTS jtsnoop(geometry);
DROP FUNCTION IF EXISTS st_noop(geometry);
DROP FUNCTION IF EXISTS st_max_distance(geometry, geometry);
Il n'y a que les 2 fonctions en gras qui "fonctionnent" ("DROP FUNCTION" s'affiche), toutes les autres
affichent
Code:
psql:/usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql:<n° de ligne>: ERREUR: le type « geometry » n'existe pas
...mais vu mes connaissances, je n'en suis pas beaucoup plus avancée ! :S
Hors ligne
#8 Fri 20 May 2011 13:56
Re: [postgis] erreur installation "le type geometry n'existe pas"
Bonjour,
Je déplace le message sur geoBD où il a plus sa place.
Pour répondre à ton problème, sous quel utilisateur lances tu ces commandes ? Je t'invite à tester sous utilisateur postgres :
Code:
$ sudo su postgres postgres$ psql -d geobd ....
En effet, les commandes SQL font référence à une lib écrite en C et l'utilisation de fonction plpgsql qui font référence à une lib de ce type est lié à des droits spécifiques qui n'autorisent pas un simple utilisateur de lancer le script SQL correctement.
L'erreur que tu vois (geometry) est à mon sens une simple conséquence de ce problème et si tu regardes l'ensemble du message d'erreur, tu devrais avoir un message l'indiquant de manière plus explicite.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#9 Fri 20 May 2011 15:19
- Amelie_D
- Participant occasionnel
- Date d'inscription: 13 Apr 2011
- Messages: 15
Re: [postgis] erreur installation "le type geometry n'existe pas"
En effet... une erreur toute bête, ça m'appendra à vouloir aller trop vite ! (petit smiley embarrassé...)
J'ai essayé hier avec
Code:
sudo -s -u postgres
comme indiqué dans le tuto, et ça ne marchait pas,
mais avec
Code:
sudo -s postgres
ça marche !
Merci beaucoup à tous.
Hors ligne
Pages: 1
- Sujet précédent - [postgis] erreur installation "le type geometry n'existe pas" - Sujet suivant