Я не нашел shp2pgsql в установке postgis

12

У меня был установлен постгис, следуя этому руководству . Все в порядке.

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"

Но у меня нет shp2pgsql, /usr/lib/postgresql/9.4/binкак вы можете видеть:

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

Почему это происходит? и как я могу установить его?

Overflow012
источник
Не уверен насчет linux, но в Windows shp2pgsql работает с PostGis \ bin, а не с postgresql \ bin ..
Майкл Стимсон

Ответы:

17

Я также следовал методу установки OP PostgreSQL и PostGIS, а именно

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

Я включил расширение PostGIS в базе данных, но не shp2pgsqlработал, пока не сделал

sudo apt-get install postgis

как указано в нижней части страницы. Почему postgresql-9.4-postgis-2.1не включает shp2pgsqlи просто postgisделает .... Я не совсем уверен. Но PostgreSQL, PostGIS и shp2pgsqlвсе сейчас работают нормально.

Хафф
источник
То же самое относится и к Fedora
TheSteve0
8

При установке postgis в Linux обязательно установите клиент, так как сам postgis не установит исполняемый файл shp2pgsql.

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

Пока вы не установите клиент, в каталоге / usr / bin / есть ссылка на / etc / alternatives / postgis-shp2pgsql. Это просто пустая ссылка, пока клиентская установка не поместит исполняемые файлы в /usr/pgsql-9.4/bin.

Надеюсь, это поможет, оцените, что ФП задал вопрос несколько месяцев назад, и я надеюсь, что решение будет найдено раньше.

smbennett1974
источник
3

Обычно shp2pgsqlбинарный файл находится /usr/bin/shp2pgsqlпри установке с пакетами, как в методе, который вы упомянули.

Вы печатали shp2pgsqlв командной строке? Обычно это работает из коробки.

Если не,

  • Вы делали updatedb(командную строку для индексирования файлов) с последующим с, locate shp2pgsqlчтобы найти реальный двоичный путь?

  • вы повторили вывод из командной строки, используя echo $PATH? И какой выход?

ThomasG77
источник
Команда sudo locate shp2pgsqlпуста. Команда echo $PAHTвозвращается/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Overflow012
Поскольку sudo locate shp2pgsqlпусто, кажется, что вы не установили shp2pgsqlдолжным образом (или вы забыли сделать sudo updatedb). Если имя пакета для дополнительного репозитория совпадает с именем по умолчанию, выполнение a sudo apt-get install postgisдолжно установить оба параметра shp2pgsqlи shp2pgsql-gui. Этот ответ основан на том факте, что я предположил, что вы используете дистрибутив на основе Debian (Debian, Mint или Ubuntu)
ThomasG77
Я бегу sudo shp2pgsqlи sudo apt-get install postgisно держу ошибкуfoo@bar:/usr/lib/postgresql/9.4$ shp2pgsql bash: /usr/local/bin/shp2pgsql: No existe el archivo o el directorio
Overflow012
0

Попробуйте обновить первый, а затем перейти оттуда:
sudo apt-get update.

Кажется глупым, но у меня были проблемы с моими установками psql и postgis, и все это прояснилось, как только я обновился.

Alfonso
источник