我在 Ubuntu 14 上使用带有 postgis 2.1 的 postgres 9.3。当我尝试使用 pgsql2shp 转储 pgsql 表时,出现以下错误。
Error: pg_wrapper: pgsql2shp was not found in /usr/lib/postgresql/9.3/bin
我使用的命令如下。
pgsql2shp -f "/home/user/testshp.shp" -h localhost -u postgres -P postgres dbname "SELECT * FROM table"
我 sudo nano /etc/environment
补充说,:/usr/local/bin/pgsql2shp
我还使用以下指南创建了一个链接:这里。
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/shp2pgsql
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/pgsql2shp
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/raster2pgsql
我做了什么事情导致了这个问题? 有解决办法吗?
谢谢!
答案1
问题在于不需要符号链接。
sudo ln -sf /usr/share/postgresql-common/pg_wrapper /usr/local/bin/pgsql2shp
我最终通过删除符号链接解决了该问题。
sudo rm /usr/local/bin/shp2pgsql
sudo rm /usr/local/bin/pgsql2shp
sudo rm /usr/local/bin/raster2pgsql
然后删除 postgis 2.1
sudo apt-get remove postgis-2.1
sudo apt-get remove postgresql-9.4-postgis-2.1
然后再次安装 postgis
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update
sudo apt-get install postgis
感谢 Gunnar Hjalmarsson 的帮助!