Tôi không tìm thấy shp2pgsql trong cài đặt postgis


12

Tôi đã được cài đặt postgis theo hướng dẫn này . Tất cả đều ổn.

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"

Nhưng tôi không có shp2pgsql /usr/lib/postgresql/9.4/binnhư bạn có thể thấy:

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

Tại sao điều này xảy ra? và làm thế nào tôi có thể cài đặt nó?


Không chắc chắn về linux nhưng trên Windows shp2pgsql có trong PostGis \ bin và không postgresql \ bin ..
Michael Promotionson

Câu trả lời:


17

Tôi cũng đang theo phương pháp cài đặt của OP là PostgreSQL và PostGIS, cụ thể là

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

Tôi đã kích hoạt tiện ích mở rộng PostGIS trong cơ sở dữ liệu nhưng không shp2pgsqlhoạt động cho đến khi tôi làm

sudo apt-get install postgis

như được liệt kê ở dưới cùng của trang. Tại sao postgresql-9.4-postgis-2.1không bao gồm shp2pgsqlvà chỉ đơn giản là postgis.... Tôi không thực sự chắc chắn. Nhưng PostgreSQL, PostGIS và shp2pgsqlhiện đang hoạt động tốt.


Tương tự với Fedora
TheSteve0

8

Khi cài đặt postgis trên Linux, hãy chắc chắn cũng cài đặt máy khách, vì chính postgis sẽ không cài đặt tệp thực thi shp2pgsql.

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

Cho đến khi bạn cài đặt máy khách, chỉ có một liên kết trong / usr / bin / trỏ đến / etc / thay thế / postgis-shp2pgsql. Đây chỉ là một liên kết trống cho đến khi máy khách cài đặt các tệp thực thi trong /usr/pgsql-9.4/bin.

Hy vọng điều này sẽ giúp, đánh giá cao OP đã hỏi câu hỏi vài tháng trước và tôi hy vọng tìm thấy một giải pháp sớm hơn.


3

Thông thường, shp2pgsqlnhị phân là /usr/bin/shp2pgsqlkhi bạn cài đặt với các gói như trong phương thức bạn đã đề cập.

Bạn đã gõ shp2pgsqlvào dòng lệnh? Thông thường, nó hoạt động ra khỏi hộp.

Nếu không,

  • bạn đã làm một updatedb(dòng lệnh đến các tệp chỉ mục) theo sau locate shp2pgsqlđể tìm đường dẫn nhị phân thực sự?

  • bạn đã lặp lại đầu ra từ dòng lệnh bằng cách sử dụng echo $PATH? Và đầu ra là gì?


Lệnh sudo locate shp2pgsqltrống rỗng. Lệnh echo $PAHTtrả về/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Overflow012

sudo locate shp2pgsqltrống, có vẻ như bạn đã không cài đặt shp2pgsqlđúng cách (hoặc bạn quên làm sudo updatedb). Nếu tên gói giống nhau cho repo bổ sung và mặc định, sudo apt-get install postgisthì nên cài đặt cả hai shp2pgsqlshp2pgsql-gui. Câu trả lời này dựa trên thực tế tôi cho rằng bạn đang sử dụng bản phân phối dựa trên Debian (Debian, Mint hoặc Ubuntu)
ThomasG77

Tôi chạy sudo shp2pgsqlsudo apt-get install postgisvẫn giữ lỗifoo@bar:/usr/lib/postgresql/9.4$ shp2pgsql bash: /usr/local/bin/shp2pgsql: No existe el archivo o el directorio
Overflow012

0

Hãy thử cập nhật trước, và sau đó tiến hành từ đó :
sudo apt-get update.

Có vẻ ngớ ngẩn, nhưng tôi đã gặp rắc rối với việc cài đặt psql và postgis và tất cả đã bị xóa khi tôi cập nhật.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.