Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#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

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 943
Site web

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: 387

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: 387

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

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

 

Pied de page des forums

Powered by FluxBB