No he encontrado shp2pgsql en la instalación postgis

12

Me han instalado postgis siguiendo esta guía . Todo está bien.

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"

Pero no tengo el shp2pgsql /usr/lib/postgresql/9.4/bincomo puedes ver:

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

¿Por qué pasa esto? y como puedo instalarlo?

Desbordamiento012
fuente
No estoy seguro acerca de Linux, pero en Windows shp2pgsql está en PostGis \ bin y no postgresql \ bin ..
Michael Stimson

Respuestas:

17

También estaba siguiendo el método de instalación de OP de PostgreSQL y PostGIS, a saber

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

Habilité la extensión PostGIS en una base de datos pero no pude shp2pgsqltrabajar hasta que lo hice

sudo apt-get install postgis

como se indica en la parte inferior de la página. Por qué postgresql-9.4-postgis-2.1no incluye shp2pgsqly simplemente lo postgishace ... No estoy realmente seguro. Pero PostgreSQL, PostGIS y shp2pgsqltodos están funcionando bien ahora.

haff
fuente
Lo mismo ocurre con Fedora
TheSteve0
8

Al instalar postgis en Linux, asegúrese de instalar también el cliente, ya que postgis por sí solo no instalará el ejecutable shp2pgsql.

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

Hasta que instale el cliente, solo hay un enlace en / usr / bin / apuntando a / etc / Alternatives / postgis-shp2pgsql. Este es solo un enlace vacío hasta que la instalación del cliente coloca los ejecutables en /usr/pgsql-9.4/bin.

Espero que esto ayude, agradezco que el OP hizo la pregunta hace unos meses y espero encontrar una resolución antes.

smbennett1974
fuente
3

Normalmente, el shp2pgsqlbinario está en /usr/bin/shp2pgsqlcuando instala con paquetes como en el método que mencionó.

¿Escribiste shp2pgsqlen la línea de comando? Normalmente, funciona fuera de la caja.

Si no,

  • ¿Hiciste una updatedb(línea de comando para indexar archivos) seguido de una locate shp2pgsqlpara encontrar la ruta binaria real?

  • ¿Se hizo eco de la salida de la línea de comando usando echo $PATH? ¿Y cuál es la salida?

ThomasG77
fuente
El comando sudo locate shp2pgsqlestá vacío. Comando echo $PAHTregresa/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Overflow012
Debido a que sudo locate shp2pgsqlestá vacío, parece que no lo instaló shp2pgsqlcorrectamente (o se olvidó de hacerlo sudo updatedb). Si el nombre del paquete es el mismo para un repositorio adicional y el predeterminado, al hacer esto sudo apt-get install postgisse instalarán ambos shp2pgsqly shp2pgsql-gui. Esta respuesta se basa en el hecho de que supuse que estás usando una distribución basada en Debian (Debian, Mint o Ubuntu)
ThomasG77
Corro sudo shp2pgsqly mantengo sudo apt-get install postgisel errorfoo@bar:/usr/lib/postgresql/9.4$ shp2pgsql bash: /usr/local/bin/shp2pgsql: No existe el archivo o el directorio
Overflow012
0

Intente actualizar primero, y luego proceder desde allí:
sudo apt-get update.

Parece tonto, pero estaba teniendo problemas con mis instalaciones de psql y postgis y todo se solucionó una vez que actualicé.

alfonso
fuente