Non ho trovato shp2pgsql nell'installazione postgis


12

Sono stato installato Postgis seguendo questa guida . Va tutto bene.

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"

Ma non ho shp2pgsql /usr/lib/postgresql/9.4/bincome puoi vedere:

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

Perché questo succede? e come posso installarlo?


Non sono sicuro di Linux ma su Windows shp2pgsql è in PostGis \ bin e non postgresql \ bin ..
Michael Stimson,

Risposte:


17

Stavo anche seguendo il metodo di installazione dell'OP PostgreSQL e PostGIS, vale a dire

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

Ho abilitato l'estensione PostGIS in un database ma non ho shp2pgsqlfunzionato fino a quando non l'ho fatto

sudo apt-get install postgis

come elencato verso il fondo della pagina. Perché postgresql-9.4-postgis-2.1non include shp2pgsqle semplicemente postgis... Non ne sono davvero sicuro. Ma PostgreSQL, PostGIS e shp2pgsqlfunzionano tutti bene ora.


Lo stesso vale per Fedora
TheSteve0,

8

Quando installi Postgis su Linux, assicurati di installare anche il client, poiché Postgis da solo non installa l'eseguibile shp2pgsql.

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

Fino a quando non installi il client, c'è solo un link in / usr / bin / che punta a / etc / alternatives / postgis-shp2pgsql. Questo è solo un collegamento vuoto fino a quando l'installazione del client posiziona gli eseguibili in /usr/pgsql-9.4/bin.

Spero che questo aiuti, apprezzo l'OP che ha posto la domanda alcuni mesi fa e spero di aver trovato una risoluzione prima.


3

Normalmente, il shp2pgsqlbinario è attivo /usr/bin/shp2pgsqlquando si installa con pacchetti come nel metodo menzionato.

Hai digitato la shp2pgsqlriga di comando? Normalmente funziona fuori dagli schemi.

Altrimenti,

  • hai fatto un updatedb(riga di comando per indicizzare i file) seguito da un locate shp2pgsqlper trovare il vero percorso binario?

  • hai fatto eco all'output dalla riga di comando usando echo $PATH? E qual è l'output?


Il comando sudo locate shp2pgsqlè vuoto. Il comando echo $PAHTrestituisce/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Overflow012,

Perché sudo locate shp2pgsqlè vuoto, sembra che non sia stato installato shp2pgsqlcorrettamente (o che si sia dimenticato di farlo sudo updatedb). Se il nome del pacchetto è lo stesso per il repository aggiuntivo e il valore predefinito, è sudo apt-get install postgisnecessario installare sia shp2pgsqle shp2pgsql-gui. Questa risposta si basa sul fatto che supponevo che tu stia usando una distro basata su Debian (Debian, Mint o Ubuntu)
ThomasG77

Corro sudo shp2pgsqle sudo apt-get install postgismantengo l'errorefoo@bar:/usr/lib/postgresql/9.4$ shp2pgsql bash: /usr/local/bin/shp2pgsql: No existe el archivo o el directorio
Overflow012

0

Prova ad aggiornare prima, e poi procedere da lì:
sudo apt-get update.

Sembra stupido, ma ho avuto problemi con le mie installazioni di psql e postgis e tutto è stato chiarito una volta aggiornato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.