Je n'ai pas trouvé shp2pgsql dans l'installation de postgis


12

J'ai installé postgis en suivant ce guide . Tout est OK.

SELECT postgis_full_version();
"POSTGIS="2.1.7 r13414" GEOS="3.4.2-CAPI-1.8.2 r3921" PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 1.10.1, released 2013/08/26" LIBXML="2.9.1" LIBJSON="UNKNOWN" TOPOLOGY RASTER"

Mais je n'ai pas le shp2pgsql /usr/lib/postgresql/9.4/bincomme vous pouvez le voir:

foo@bar:/usr/lib/postgresql/9.4/bin$ ls
clusterdb   initdb             pg_dump         pg_standby      psql
createdb    oid2name           pg_dumpall      pg_test_fsync   reindexdb
createlang  pg_archivecleanup  pg_isready      pg_test_timing  vacuumdb
createuser  pg_basebackup      pg_receivexlog  pg_upgrade      vacuumlo
dropdb      pgbench            pg_recvlogical  pg_xlogdump
droplang    pg_controldata     pg_resetxlog    postgres
dropuser    pg_ctl             pg_restore      postmaster

Pourquoi ça arrive? et comment l'installer?


Pas sûr de Linux, mais sous Windows, shp2pgsql est avec PostGis \ bin et non postgresql \ bin ..
Michael Stimson

Réponses:


17

Je suivais également la méthode d' installation OP de PostgreSQL et PostGIS, à savoir

sudo apt-get install postgresql-9.4-postgis-2.1 pgadmin3 postgresql-contrib-9.4

J'ai activé l'extension PostGIS dans une base de données mais shp2pgsqlje ne me suis pas mis au travail avant

sudo apt-get install postgis

comme indiqué vers le bas de la page. Pourquoi postgresql-9.4-postgis-2.1ne comprend pas shp2pgsqlet simplement postgis... Je ne suis pas vraiment sûr. Mais PostgreSQL, PostGIS et shp2pgsqlfonctionnent tous bien maintenant.


Il en va de même pour Fedora
TheSteve0

8

Lors de l'installation de postgis sous Linux, assurez-vous également d'installer le client, car postgis seul n'installera pas l'exécutable shp2pgsql.

yum install postgis2_94
yum install postgis2_94-utils
yum install postgis2_94-client

Jusqu'à ce que vous installiez le client, il y a juste un lien dans / usr / bin / pointant vers / etc / alternatives / postgis-shp2pgsql. Il s'agit simplement d'un lien vide jusqu'à ce que l'installation du client place les exécutables dans /usr/pgsql-9.4/bin.

J'espère que cela vous aidera, appréciez que le PO ait posé la question il y a quelques mois et j'espère avoir trouvé une solution plus tôt.


3

Normalement, le shp2pgsqlbinaire se trouve /usr/bin/shp2pgsqllorsque vous installez avec des packages comme dans la méthode que vous avez mentionnée.

Avez-vous shp2pgsqltapé la ligne de commande? Normalement, cela fonctionne hors de la boîte.

Si non,

  • avez-vous fait une updatedb(ligne de commande pour indexer les fichiers) suivie d'un locate shp2pgsqlpour trouver le vrai chemin binaire?

  • avez-vous répété la sortie de la ligne de commande en utilisant echo $PATH? Et quelle est la sortie?


La commande sudo locate shp2pgsqlest vide. Commande des echo $PAHTretours/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Overflow012

Parce qu'il sudo locate shp2pgsqlest vide, il semble que vous n'ayez pas installé shp2pgsqlcorrectement (ou que vous avez oublié de le faire sudo updatedb). Si le nom du package est le même pour le dépôt supplémentaire et la valeur par défaut, faire un sudo apt-get install postgisdevrait installer les deux shp2pgsqlet shp2pgsql-gui. Cette réponse est basée sur le fait que je suppose que vous utilisez une distribution basée sur Debian (Debian, Mint ou Ubuntu)
ThomasG77

Je cours sudo shp2pgsqlet sudo apt-get install postgisconserve l'erreurfoo@bar:/usr/lib/postgresql/9.4$ shp2pgsql bash: /usr/local/bin/shp2pgsql: No existe el archivo o el directorio
Overflow012

0

Essayez la mise à jour d' abord, puis à partir de là:
sudo apt-get update.

Semble stupide, mais j'avais des problèmes avec mes installations de psql et de postgis et tout s'est éclairci une fois que j'ai mis à jour.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.