I just had the same problem on Ubuntu Server 14.04.
I installed the postgis
extension from the official Ubuntu repositories using apt-get install postgis
.
Then, find /usr -name postgis.control
didn't return any results.
The reason was extension/postgis.control
wasn't installed because postgis-scripts wasn't.
$ aptitude search postgis
i libpostgis-java - Geographic objects support for PostgreSQL -- JDBC support
i postgis - Geographic objects support for PostgreSQL
p postgis:i386 - Geographic objects support for PostgreSQL
i postgis-doc - Geographic objects support for PostgreSQL -- documentation
i postgresql-9.3-postgis-2.1 - Geographic objects support for PostgreSQL 9.3
p postgresql-9.3-postgis-2.1:i386 - Geographic objects support for PostgreSQL 9.3
i postgresql-9.3-postgis-2.1-scripts - PostGIS for PostgreSQL 9.3 -- scripts -- dummy package
i postgresql-9.3-postgis-scripts - Geographic objects support for PostgreSQL 9.3 -- scripts
The solution is to install it.
On debian-like distros:
apt-get install postgis*
The aptitude package manager will automatically determine the correct package versions to install. The postgis-doc will be installed too.
EDIT
Like some people noticed in comments, the postgis*
is not required because it installs some packages not strictly required to just get it to work.
The required packages are postgis
and postgresql-9.x-postgis-scripts
meta packages. They select the correct real version for your system.
So the commands to install the required packages are
$ sudo apt-get install postgis postgresql-9.3-postgis-scripts
for postgresql-9.3
. Ubuntu 16.04
runs postgresql-9.5
so the command becomes:
$ sudo apt-get install postgis postgresql-9.5-postgis-scripts
You can check the success of the operation by running the following command:
find /usr -name postgis.control
On my server, it now returns:
/usr/share/postgresql/9.3/extension/postgis.control
You can now enable the extension on any database on your postgres server:
- connect to your db with superuser (postgres by default)
- run
CREATE EXTENSION postgis;
Your public schema now contains all postgis objects and functions.
I've used the following approach for installing postgis:
sudo apt-get install python-software-properties
sudo apt-add-repository ppa:ubuntugis/ppa
sudo apt-get update
sudo apt-get install postgresql-9.1
sudo apt-get install postgresql-9.1-postgis
Are you sure that it all installed without errors?
Best Answer
I have both epel and pgdg10 repo enabled. Disabling the eprl repo before installing postgis will install the proper postgis rpms for postgresql-10.