72 votos

Ejecutar la extensión de creación postgis da ERROR no se pudo abrir el archivo de control de la extensión.

He instalado PostgreSQL 9.x y PostGIS 1.5/2.0 varias veces y nunca he tenido este problema.

Acabo de configurar un nuevo servidor CentOS 6.3 y tengo Postgres 9.3 funcionando como se esperaba. He ejecutado

yum install postgis2_93

y puedo ver los archivos en

/usr/pgsql-9.3/share/contrib/

sin embargo, cuando ejecuto

CREATE EXTENSION postgis;

recibo

ERROR:  no se pudo abrir el archivo de control de la extensión "/usr/pgsql-9.3/share/extension/postgis.control": No such file or directory

los tutoriales (#1, #2) que he utilizado no muestran ningún paso entre instalar PostGIS y crear la extensión.

¿Qué me falta?

70voto

user35032 Puntos 51

Acabo de tener el mismo problema en Ubuntu Server 14.04. Instalé la extensión postgis desde los repositorios oficiales de Ubuntu usando apt-get install postgis.

Luego, find /usr -name postgis.control no arrojó ningún resultado.

La razón fue que extension/postgis.control no estaba instalado porque postgis-scripts no lo estaba.

$ aptitude search postgis
i   libpostgis-java                                  - Soporte para objetos geográficos para PostgreSQL -- soporte JDBC 
i   postgis                                          - Soporte para objetos geográficos para PostgreSQL                 
p   postgis:i386                                     - Soporte para objetos geográficos para PostgreSQL                 
i   postgis-doc                                      - Soporte para objetos geográficos para PostgreSQL -- documentación
i   postgresql-9.3-postgis-2.1                       - Soporte para objetos geográficos para PostgreSQL 9.3             
p   postgresql-9.3-postgis-2.1:i386                  - Soporte para objetos geográficos para PostgreSQL 9.3             
i   postgresql-9.3-postgis-2.1-scripts               - PostGIS para PostgreSQL 9.3 -- scripts -- paquete ficticio     
i   postgresql-9.3-postgis-scripts                   - Soporte para objetos geográficos para PostgreSQL 9.3 -- scripts 

La solución es instalarlo.

En distribuciones similares a debian:

apt-get install postgis*

El gestor de paquetes aptitude determinará automáticamente las versiones correctas de los paquetes a instalar. El postgis-doc también será instalado.

EDITAR

Como algunas personas notaron en los comentarios, el postgis* no es necesario porque instala algunos paquetes que no son estrictamente necesarios para hacerlo funcionar.

Los paquetes requeridos son postgis y postgresql-9.x-postgis-scripts meta paquetes. Seleccionan la versión real correcta para tu sistema. Entonces los comandos para instalar los paquetes requeridos son

 $ sudo apt-get install postgis postgresql-9.3-postgis-scripts

para postgresql-9.3. Ubuntu 16.04 utiliza postgresql-9.5 así que el comando sería:

 $ sudo apt-get install postgis postgresql-9.5-postgis-scripts

Puedes verificar el éxito de la operación ejecutando el siguiente comando:

find /usr -name postgis.control

En mi servidor, ahora devuelve:

/usr/share/postgresql/9.3/extension/postgis.control

Ahora puedes habilitar la extensión en cualquier base de datos de tu servidor postgres:

  • conéctate a tu base de datos con un superusuario (postgres por defecto)
  • ejecuta CREATE EXTENSION postgis;

Ahora tu esquema público contiene todos los objetos y funciones de postgis.

21voto

edward Puntos 201

En Ubuntu 14.04 también necesitas instalar el paquete postgresql-9.3-postgis-scripts. Después de haber ejecutado

sudo apt-get install postgis postgresql-9.3-postgis-scripts

luego pude ejecutar con éxito

CREATE EXTENSION postgis;

en mi base de datos para inicializar PostGIS.

15voto

NilObject Puntos 7874

Si puedes encontrar un archivo postgis.sql, puedes ejecutarlo en tu base de datos (y el archivo spatial_ref_sys.sql) para espacializar manualmente tu base de datos. Informa al empaquetador sobre el archivo de control faltante, eso es un gran problema.

7voto

e63acd Puntos 21

Para ubuntu 20.04, postgresql 13.1, ejecuta sudo apt install postgis postgresql-13-postgis-3-scripts. Después de lo cual puedes ejecutar la consulta de postgresql create extension postgis;.

4voto

koffie Puntos 76

Tuve el mismo problema, solo ejecuté el comando

sudo apt-get install postgis

Estaba usando Ubuntu 18.04

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X