Não encontrei shp2pgsql na instalação do postgis

12

Fui instalado no postgis seguindo este guia . Tudo está bem.

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"

Mas eu não tenho o shp2pgsql /usr/lib/postgresql/9.4/bincomo você pode 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 que isso acontece? e como posso instalá-lo?

Overflow012
fonte
Não tenho certeza sobre o Linux, mas no Windows shp2pgsql é com o PostGIS \ bin e não postgresql \ bin ..
Michael Stimson

Respostas:

17

Eu também estava seguindo o método de instalação do OP do PostgreSQL e PostGIS, a saber

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

Habilitei a extensão PostGIS em um banco de dados, mas não shp2pgsqltrabalhei até fazê-lo

sudo apt-get install postgis

conforme listado na parte inferior da página. Por postgresql-9.4-postgis-2.1que não inclui shp2pgsqle simplesmente postgisinclui ... Não tenho muita certeza. Mas o PostgreSQL, o PostGIS e shp2pgsqltodos estão funcionando bem agora.

haff
fonte
O mesmo vale para o Fedora
TheSteve0
8

Ao instalar o postgis no Linux, certifique-se de instalar o cliente também, pois o postgis por si só não instalará o executável shp2pgsql.

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

Até você instalar o cliente, existe apenas um link em / usr / bin / apontando para / etc / alternative / postgis-shp2pgsql. Este é apenas um link vazio até que a instalação do cliente coloque os executáveis ​​em /usr/pgsql-9.4/bin.

Espero que isso ajude, aprecie o OP feito a pergunta há alguns meses e espero encontrar uma resolução mais cedo.

smbennett1974
fonte
3

Normalmente, o shp2pgsqlbinário está presente /usr/bin/shp2pgsqlquando você instala com pacotes como no método que você mencionou.

Você digitou shp2pgsqlna linha de comando? Normalmente, funciona imediatamente.

Se não,

  • você fez um updatedb(linha de comando para indexar arquivos) seguido de um locate shp2pgsqlpara encontrar o caminho binário real?

  • você repetiu a saída da linha de comando usando echo $PATH? E qual é a saída?

ThomasG77
fonte
O comando sudo locate shp2pgsqlestá vazio. echo $PAHTRetorna o comando/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Overflow012
Como sudo locate shp2pgsqlestá vazio, parece que você não instalou shp2pgsqlcorretamente (ou esqueceu de fazer sudo updatedb). Se o nome do pacote for o mesmo para repositório adicional e o padrão, faça a sudo apt-get install postgisinstalação de ambos shp2pgsqle shp2pgsql-gui. Esta resposta é baseada no fato de que eu deveria você estiver usando uma distro baseada no Debian (Debian, hortelã ou Ubuntu)
ThomasG77
Eu corro sudo shp2pgsqle, sudo apt-get install postgismas mantém o erro #foo@bar:/usr/lib/postgresql/9.4$ shp2pgsql bash: /usr/local/bin/shp2pgsql: No existe el archivo o el directorio
Overflow012
0

Tente atualizar primeiro, e depois proceder a partir daí:
sudo apt-get update.

Parece idiota, mas eu estava tendo problemas com minhas instalações de psql e postgis e tudo foi esclarecido assim que eu atualizei.

Alfonso
fonte