Я не знайшов 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

Чому це відбувається? і як я можу його встановити?


Не впевнений у Linux, але в Windows shp2pgsql знаходиться в PostGis \ bin, а не postgresql \ bin ..
Майкл Стимсон,

Відповіді:


17

Я також дотримувався методу установки ОП 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 / alternative / postgis-shp2pgsql. Це лише порожнє посилання, поки клієнт не встановить розміщення виконуваних файлів у /usr/pgsql-9.4/bin.

Сподіваюся, це допомагає, оцінюйте питання, яке ОП поставило це питання кілька місяців тому, і я сподіваюся, що швидше знайдеться рішення.


3

Зазвичай, shp2pgsqlдвійковий код використовується, /usr/bin/shp2pgsqlколи ви встановлюєте з пакетами, як у згаданому вами методі.

Ви ввели shp2pgsqlкомандний рядок? Зазвичай він працює поза коробкою.

Якщо ні,

  • Ви зробили updatedb(командний рядок для індексації файлів), після якого locate shp2pgsqlслід знайти a, щоб знайти справжній бінарний шлях?

  • Ви відлучили вихід з командного рядка за допомогою echo $PATH? А який вихід?


Команда 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). Якщо ім'я пакета є однаковим для додаткового репо і за замовчуванням, роблячи 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, і це все прояснилося, як тільки я оновився.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.